whyclxw
2020-08-13 8f98a6c2fae798bff09608682b8d60bac01acb74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.electrical.FourKW;
 
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
 
public class Electrical_ALL_SocketClient_Thread implements Runnable{
    public MysqlConnPool conn_pool;
 
    public Electric_Switch eswitch;
    public Electric_Power epower;
    
    public MyModbusMaster master;
    
    //public static final int MAX_READALARM_COUNT = 20;        //Ò»´Î¶ÁÈ¡¸æ¾¯½ÚµãµÄ×î´óÊýÁ¿
    //public int read_alarm_index = 0;                        //¶ÁÈ¡¸æ¾¯Ë÷Òý
    
    public Electrical_ALL_SocketClient_Thread(String PLC_ip,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        eswitch=new Electric_Switch(PLC_ip);
        epower=new Electric_Power(PLC_ip);
        
        master = new MyModbusMaster(PLC_ip, MyModbusMaster.SLAVEID_DEFAULT);
    }
        
    @Override
    public void run() {
        int runCount = 0;
        while(true) {
            try {
                if(runCount %2 == 0) {
                    /*************************** ¸üеçÔ´×Ü¿ª¹Ø×´Ì¬±í******************************/
                    readElectrical_switch(master,eswitch);
                    Electrical_Task_SQL.replace_Electric_Switch(conn_pool, eswitch);
                    
                    
                    /**************************** ¸üÐÂ4Ì×µçԴ״̬±í*****************************/
                    readElectrical_power(master,epower);
                    Electrical_Task_SQL.replace_Electric_Power(conn_pool, epower);
                    
                }
                
/*                if(runCount%10 == 0) {
                    //¸üе±Ç°É豸ip
                    master.setTarget_ip(einf.electric_ip);
                }
*/                if(runCount > 999900) {
                    runCount = 0;
                }
                runCount ++;                
                Thread.sleep(200);                
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
        
     }
        
    }
    /**
     *     ¸üеçÔ´×Ü¿ª¹Ø×´Ì¬±í
     * @param master
     * @param load_state
     */
    private void readElectrical_switch(MyModbusMaster master, Electric_Switch eswitch) {
        eswitch.km1_switchon_one = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchon_one"),  master), eswitch.km1_switchon_one);    //Ò»ºÅת»»¿ª¹Ø¹ñKM1ºÏÕ¢Ö¸Áî            
        eswitch.km1_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchoff_one"),  master), eswitch.km1_switchoff_one);    //Ò»ºÅת»»¿ª¹Ø¹ñKM1·ÖÕ¢Ö¸Áî            
        eswitch.km2_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchon_one"), master), eswitch.km2_switchon_one);        //Ò»ºÅת»»¿ª¹Ø¹ñKM2ºÏÕ¢Ö¸Áî
        eswitch.km2_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchoff_one"), master), eswitch.km2_switchoff_one);    //Ò»ºÅת»»¿ª¹Ø¹ñKM2·ÖÕ¢Ö¸Áî            
        eswitch.km3_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchon_one"), master), eswitch.km3_switchon_one);            //Ò»ºÅת»»¿ª¹Ø¹ñKM3ºÏÕ¢Ö¸Áî            
        eswitch.km3_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchoff_one"),master), eswitch.km3_switchoff_one);            //Ò»ºÅת»»¿ª¹Ø¹ñKM3·ÖÕ¢Ö¸Áî    
        eswitch.km4_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchon_one"),master), eswitch.km4_switchon_one);            //Ò»ºÅת»»¿ª¹Ø¹ñKM4ºÏÕ¢Ö¸Áî        
        eswitch.km4_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchoff_one"), master), eswitch.km4_switchoff_one);        //Ò»ºÅת»»¿ª¹Ø¹ñKM4·ÖÕ¢Ö¸Áî    
        eswitch.km1_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchon_two"), master),eswitch.km1_switchon_two);            //¶þºÅת»»¿ª¹Ø¹ñKM1ºÏÕ¢Ö¸Áî        
        eswitch.km1_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchoff_two"), master),eswitch.km1_switchoff_two);        //¶þºÅת»»¿ª¹Ø¹ñKM1·ÖÕ¢Ö¸Áî        
        eswitch.km2_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchon_two"), master),eswitch.km2_switchon_two);            //¶þºÅת»»¿ª¹Ø¹ñKM2ºÏÕ¢Ö¸Áî            
        eswitch.km2_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchoff_two"), master), eswitch.km2_switchoff_two);        //¶þºÅת»»¿ª¹Ø¹ñKM2·ÖÕ¢Ö¸Áî    
        eswitch.km3_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchon_two"), master),eswitch.km3_switchon_two);            //¶þºÅת»»¿ª¹Ø¹ñKM3ºÏÕ¢Ö¸Áî        
        eswitch.km3_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchoff_two"), master), eswitch.km3_switchoff_two);        //¶þºÅת»»¿ª¹Ø¹ñKM3·ÖÕ¢Ö¸Áî
        eswitch.km4_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchon_two"), master), eswitch.km4_switchon_two);            //¶þºÅת»»¿ª¹Ø¹ñKM4ºÏÕ¢Ö¸Áî        
        eswitch.km4_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchoff_two"), master),eswitch.km4_switchoff_two);            //¶þºÅת»»¿ª¹Ø¹ñKM4·ÖÕ¢Ö¸Áî        
    }
    /**
     *     ¸üеçÔ´×Ü¿ª¹Ø×´Ì¬±í
     * @param master
     * @param load_state
     */
    private void readElectrical_power(MyModbusMaster master, Electric_Power epower) {
        epower.start_a = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_a"), master), epower.start_a );    //AÌׯô¶¯            
        epower.stop_a = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_a"), master),epower.stop_a );        //AÌ×Í£Ö¹            
        epower.start_b = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_b"), master), epower.start_b );        //BÌׯô¶¯        
        epower.stop_b = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_b"), master), epower.stop_b );        //BÌ×Í£Ö¹     
        epower.start_c = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_c"), master),epower.start_c);        //CÌׯô¶¯        
        epower.stop_c = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_c"),  master), epower.stop_c );        //CÌ×Í£Ö¹     
        epower.start_d = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_d"),  master), epower.start_d);        //DÌׯô¶¯        
        epower.stop_d = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_d"), master), epower.stop_d );        //DÌ×Í£Ö¹        
        epower.abconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_start"),  master), epower.abconn_start);        //ABÌײ¢ÁªÔËÐÐÆô¶¯            
        epower.abconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_stop"), master), epower.abconn_stop);            //ABÌײ¢ÁªÔËÐÐÍ£Ö¹        
        epower.cdconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_start"),  master), epower.cdconn_start);        //CDÌײ¢ÁªÔËÐÐÆô¶¯        
        epower.cdconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_stop"),  master), epower.cdconn_stop);            //CDÌײ¢ÁªÔËÐÐÍ£Ö¹        
        epower.allconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("allconn_start"), master), epower.allconn_start);        //ËÄÌײ¢ÁªÔËÐÐÆô¶¯        
        epower.allconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("allconn_stop"), master), epower.allconn_stop);        //ËÄÌײ¢ÁªÔËÐÐÍ£Ö¹        
        epower.abconn_flag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_flag"),  master), epower.abconn_flag);            //AB²¢´®Áª±ê־λ        
        epower.cdconn_flag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_flag"), master), epower.cdconn_flag);            //CD²¢´®Áª±ê־λ        
        /*epower.abconn_volset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("abconn_volset"), DataType.TWO_BYTE_INT_SIGNED,   master), epower.abconn_volset);        //AB²¢Áªµçѹ¸ø¶¨                
        epower.abconn_currset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("abconn_currset"),DataType.TWO_BYTE_INT_SIGNED, master), epower.abconn_currset);    //AB²¢ÁªµçÁ÷¸ø¶¨    
        epower.cdconn_volset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("cdconn_volset"), DataType.TWO_BYTE_INT_SIGNED,  master), epower.cdconn_volset);        //CD²¢Áªµçѹ¸ø¶¨    
        epower.cdconn_currset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("cdconn_currset"), DataType.TWO_BYTE_INT_SIGNED,  master), epower.cdconn_currset);        //CD²¢ÁªµçÁ÷¸ø¶¨        
       */
    }
}