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 |