etherlab/EthercatSlave.py
changeset 2152 e6946c298a42
parent 2131 504f18b3306a
child 2165 02a2b5dee5e3
equal deleted inserted replaced
2151:015dab6a915f 2152:e6946c298a42
     2 
     2 
     3 from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
     3 from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
     4 from ConfigTreeNode import ConfigTreeNode
     4 from ConfigTreeNode import ConfigTreeNode
     5 
     5 
     6 from ConfigEditor import NodeEditor
     6 from ConfigEditor import NodeEditor
       
     7 
       
     8 #------------------------------------------
       
     9 from CommonEtherCATFunction import _CommonSlave 
       
    10 #------------------------------------------
       
    11 
     7 
    12 
     8 TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L",
    13 TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L",
     9     "USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", 
    14     "USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", 
    10     "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L"}
    15     "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L"}
    11 
    16 
    40         for name in names:
    45         for name in names:
    41             if name.getLcId() == 1033:
    46             if name.getLcId() == 1033:
    42                 return name.getcontent()
    47                 return name.getcontent()
    43     return default
    48     return default
    44 
    49 
       
    50 
    45 #--------------------------------------------------
    51 #--------------------------------------------------
    46 #                    Ethercat Node
    52 #                    Ethercat Node
    47 #--------------------------------------------------
    53 #--------------------------------------------------
    48 
    54 
    49 class _EthercatSlaveCTN:
    55 class _EthercatSlaveCTN:
    50     
       
    51     NODE_PROFILE = None
    56     NODE_PROFILE = None
    52     EditorType = NodeEditor
    57     EditorType = NodeEditor
       
    58     
       
    59     def __init__(self):
       
    60         # ----------- call ethercat mng. function --------------
       
    61         self.CommonMethod = _CommonSlave(self)
    53     
    62     
    54     def GetIconName(self):
    63     def GetIconName(self):
    55         return "Slave"
    64         return "Slave"
    56     
    65     
    57     def ExtractHexDecValue(self, value):
    66     def ExtractHexDecValue(self, value):
    95                     'name': 'Alias', 
   104                     'name': 'Alias', 
    96                     'value': self.CTNParent.GetSlaveAlias(self.GetSlavePos())})
   105                     'value': self.CTNParent.GetSlaveAlias(self.GetSlavePos())})
    97             return params
   106             return params
    98         
   107         
    99     def SetParamsAttribute(self, path, value):
   108     def SetParamsAttribute(self, path, value):
       
   109         self.GetSlaveInfos()
   100         position = self.BaseParams.getIEC_Channel()
   110         position = self.BaseParams.getIEC_Channel()
   101         
   111         
   102         if path == "SlaveParams.Type":
   112         if path == "SlaveParams.Type":
   103             self.CTNParent.SetSlaveType(position, value)
   113             self.CTNParent.SetSlaveType(position, value)
   104             slave_type = self.CTNParent.GetSlaveType(self.GetSlavePos())
   114             slave_type = self.CTNParent.GetSlaveType(self.GetSlavePos())
   105             value = (slave_type["device_type"], slave_type)
   115             value = (slave_type["device_type"], slave_type)
       
   116             #if self._View is not None:
       
   117                 #wx.CallAfter(self._View.EtherCATManagementTreebook.SlaveStatePanel.RefreshSlaveInfos())
       
   118                 #self._View.EtherCATManagementTreebook.SlaveStatePanel.RefreshSlaveInfos()
       
   119                 #self._View.EtherCATManagementTreebook.PDOMonitoringPanel.PDOInfoUpdate()
       
   120                 #self._View.EtherCATManagementTreebook.SmartView.Create_SmartView()
   106             return value, True
   121             return value, True
   107         elif path == "SlaveParams.Alias":
   122         elif path == "SlaveParams.Alias":
   108             self.CTNParent.SetSlaveAlias(position, value)
   123             self.CTNParent.SetSlaveAlias(position, value)
   109             return value, True
   124             return value, True
   110         
   125