Long due merge
authorEdouard Tisserant
Mon, 11 Mar 2019 13:51:07 +0100
changeset 2521 48ebcbe7f19b
parent 2493 0ad5e616d37f (current diff)
parent 2520 3a1c0c161f80 (diff)
child 2522 1378c18402c3
child 2523 aa7f138648f3
child 2530 02d09fc6eb90
Long due merge
PLCGenerator.py
ProjectController.py
connectors/PYRO_dialog.py
connectors/WAMP_dialog.py
controls/DiscoveryPanel.py
dialogs/UriEditor.py
modbus/mb_runtime.c
--- a/PLCControler.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/PLCControler.py	Mon Mar 11 13:51:07 2019 +0100
@@ -463,7 +463,7 @@
                     self.ProgramFilePath = filepath
                 return program_text, errors, warnings
             except PLCGenException as ex:
-                errors.append(str(ex))
+                errors.append(ex)
         else:
             errors.append("No project opened")
         return "", errors, warnings
--- a/PLCGenerator.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/PLCGenerator.py	Mon Mar 11 13:51:07 2019 +0100
@@ -1335,6 +1335,9 @@
                 contact_info = (self.TagName, "contact", next.getlocalId())
                 variable = str(self.ExtractModifier(next, [(next.getvariable(), contact_info + ("reference",))], contact_info))
                 result = self.GeneratePaths(next.connectionPointIn.getconnections(), body, order)
+                if len(result) == 0:
+                    raise PLCGenException(_("Contact \"{a1}\" in POU \"{a2}\" must be connected.").
+                                          format(a1=next.getvariable(), a2=self.Name))
                 if len(result) > 1:
                     factorized_paths = self.FactorizePaths(result)
                     if len(factorized_paths) > 1:
--- a/PLCOpenEditor.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/PLCOpenEditor.py	Mon Mar 11 13:51:07 2019 +0100
@@ -305,7 +305,7 @@
         self.SaveProjectAs()
 
     def OnGenerateProgramMenu(self, event):
-        dialog = wx.FileDialog(self, _("Choose a file"), os.getcwd(), self.Controler.GetProgramFilePath(),  _("ST files (*.st)|*.st|All files|*.*"), wx.SAVE | wx.CHANGE_DIR)
+        dialog = wx.FileDialog(self, _("Choose a file"), os.getcwd(), os.path.basename(self.Controler.GetProgramFilePath()),  _("ST files (*.st)|*.st|All files|*.*"), wx.SAVE | wx.CHANGE_DIR)
         if dialog.ShowModal() == wx.ID_OK:
             filepath = dialog.GetPath()
             message_text = ""
--- a/ProjectController.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/ProjectController.py	Mon Mar 11 13:51:07 2019 +0100
@@ -40,6 +40,7 @@
 from datetime import datetime
 from weakref import WeakKeyDictionary
 from functools import reduce
+from distutils.dir_util import copy_tree
 from six.moves import xrange
 
 import wx
@@ -555,10 +556,19 @@
             dialog.ShowModal()
             return False
         else:
-            plc_file = os.path.join(new_project_path, "plc.xml")
-            if os.path.isfile(plc_file):
-                message = (
-                    _("Selected directory already contains another project. Overwrite? \n"))
+            if not CheckPathPerm(new_project_path):
+                dialog = wx.MessageDialog(
+                    self.AppFrame,
+                    _('No write permissions in selected directory! \n'),
+                    _("Error"), wx.OK | wx.ICON_ERROR)
+                dialog.ShowModal()
+                return False
+            if not os.path.isdir(new_project_path) or len(os.listdir(new_project_path)) > 0:
+                plc_file = os.path.join(new_project_path, "plc.xml")
+                if os.path.isfile(plc_file):
+                    message = _("Selected directory already contains another project. Overwrite? \n")
+                else:
+                    message = _("Selected directory isn't empty. Continue? \n")
                 dialog = wx.MessageDialog(
                     self.AppFrame, message, _("Error"), wx.YES_NO | wx.ICON_ERROR)
                 answer = dialog.ShowModal()
@@ -571,8 +581,8 @@
                 old_projectfiles_path = self._getProjectFilesPath(
                     from_project_path)
                 if os.path.isdir(old_projectfiles_path):
-                    shutil.copytree(old_projectfiles_path,
-                                    self._getProjectFilesPath(self.ProjectPath))
+                    copy_tree(old_projectfiles_path,
+                              self._getProjectFilesPath(self.ProjectPath))
             self.SaveXMLFile(os.path.join(self.ProjectPath, 'plc.xml'))
             result = self.CTNRequestSave(from_project_path)
             if result:
@@ -1499,8 +1509,10 @@
                                 IECdebug_data = self.IECdebug_datas.get(
                                     IECPath, None)
                                 if IECdebug_data is not None and value is not None:
-                                    forced = IECdebug_data[2:4] == [
-                                        "Forced", value]
+                                    forced = (IECdebug_data[2] == "Forced") \
+                                        and (value is not None) and \
+                                        (IECdebug_data[3] is not None)
+
                                     if not IECdebug_data[4] and len(values_buffer) > 0:
                                         values_buffer[-1] = (value, forced)
                                     else:
--- a/README.md	Mon Mar 11 09:18:58 2019 +0100
+++ b/README.md	Mon Mar 11 13:51:07 2019 +0100
@@ -33,8 +33,8 @@
 * Get Source Code
 
 		cd ~/Beremiz
-		hg clone https://bitbucket.org/skvorl/beremiz
-		hg clone https://bitbucket.org/mjsousa/matiec
+		hg clone https://bitbucket.org/automforge/beremiz
+		hg clone https://bitbucket.org/automforge/matiec
 
 * Build MatIEC compiler
 
--- a/controls/DebugVariablePanel/DebugVariablePanel.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/controls/DebugVariablePanel/DebugVariablePanel.py	Mon Mar 11 13:51:07 2019 +0100
@@ -521,6 +521,15 @@
         self.RefreshGraphicsWindowScrollbars()
 
     def RefreshView(self):
+        """Triggers EVT_PAINT event to refresh UI"""
+        self.Refresh()
+
+    def DrawView(self):
+        """
+        Redraw elements.
+        Method is used by EVT_PAINT handler.
+        """
+
         self.RefreshCanvasPosition()
 
         if not self.Fixed or self.Force:
@@ -922,7 +931,9 @@
         pass
 
     def OnGraphicsWindowPaint(self, event):
-        self.RefreshView()
+        """EVT_PAINT handler"""
+
+        self.DrawView()
         event.Skip()
 
     def OnGraphicsWindowResize(self, event):
--- a/controls/DebugVariablePanel/DebugVariableTextViewer.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/controls/DebugVariablePanel/DebugVariableTextViewer.py	Mon Mar 11 13:51:07 2019 +0100
@@ -185,8 +185,12 @@
             self.Buttons.append(GraphButton(0, 0, bitmap, callback))
 
     def RefreshViewer(self):
-        """
-        Method that refresh the content displayed by Viewer
+        """Triggers EVT_PAINT event to refresh UI"""
+        self.Refresh()
+
+    def DrawViewer(self):
+        """
+        Redraw content displayed by Viewer
         """
         # Create buffered DC for drawing in panel
         width, height = self.GetSize()
@@ -282,5 +286,5 @@
         Function called when redrawing Viewer content is needed
         @param event: wx.PaintEvent
         """
-        self.RefreshViewer()
+        self.DrawViewer()
         event.Skip()
--- a/dialogs/BlockPreviewDialog.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/dialogs/BlockPreviewDialog.py	Mon Mar 11 13:51:07 2019 +0100
@@ -251,6 +251,10 @@
         self.EndModal(wx.ID_OK)
 
     def RefreshPreview(self):
+        """Triggers EVT_PAINT event to refresh UI"""
+        self.Refresh()
+
+    def DrawPreview(self):
         """
         Refresh preview panel of graphic element
         May be overridden by inherited classes
@@ -300,5 +304,5 @@
         Called when Preview panel need to be redraw
         @param event: wx.PaintEvent
         """
-        self.RefreshPreview()
+        self.DrawPreview()
         event.Skip()
--- a/dialogs/ForceVariableDialog.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/dialogs/ForceVariableDialog.py	Mon Mar 11 13:51:07 2019 +0100
@@ -169,43 +169,109 @@
 # -------------------------------------------------------------------------------
 
 
-class ForceVariableDialog(wx.TextEntryDialog):
+class ForceVariableDialog(wx.Dialog):
+    """Dialog to enforce new value for variables in debug panel"""
 
     def __init__(self, parent, iec_type, defaultValue=""):
-        wx.TextEntryDialog.__init__(
+        """
+        Constructor
+        @param parent: Parent wx.Window of dialog for modal
+        @param iec_type: IEC type of variable (string). For example 'BOOL', 'LREAL'.
+        @param defaultValue: current variable value as string. Default is empty string.
+        """
+        wx.Dialog.__init__(
             self, parent,
-            message=_("Forcing Variable Value"),
-            caption=_("Please enter value for a \"%s\" variable:") % iec_type,
-            defaultValue=defaultValue,
-            style=wx.OK | wx.CANCEL | wx.CENTRE, pos=wx.DefaultPosition)
+            name='ForceVariableDialog',
+            title=_("Please enter value for a \"%s\" variable:") % iec_type,
+            style=wx.DEFAULT_DIALOG_STYLE, pos=wx.DefaultPosition)
 
         self.IEC_Type = iec_type
-
-        self.Bind(wx.EVT_BUTTON, self.OnOK,
-                  self.GetSizer().GetItem(2).GetSizer().GetItem(1).
-                  GetSizer().GetAffirmativeButton())
-        self.ValueTextCtrl = self.GetSizer().GetItem(1).GetWindow()
-        if self.IEC_Type == "BOOL":
-            self.ToggleButton = wx.ToggleButton(self, label=_("Toggle value"))
-            value = GetTypeValue[self.IEC_Type](defaultValue)
-            if value is not None:
-                self.ToggleButton.SetValue(value)
-
-            border = self.GetSizer().GetItem(1).GetBorder()
-            self.GetSizer().Insert(before=2, item=self.ToggleButton,
-                                   border=border,
-                                   flag=wx.LEFT | wx.RIGHT | wx.EXPAND)
-            self.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleBoolValue, self.ToggleButton)
-
+        info_sizer = wx.BoxSizer(wx.VERTICAL)
+
+        message_label = wx.StaticText(self, label=_("Forcing Variable Value"))
+        info_sizer.AddWindow(message_label, border=10,
+                             flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT)
+
+        if GetTypeValue[self.IEC_Type] in [getinteger, getfloat]:
+            self.InitCtrlNumber(info_sizer, defaultValue)
+        elif self.IEC_Type == "BOOL":
+            self.InitCtrlBool(info_sizer, defaultValue)
+        else:
+            self.InitCtrlDefault(info_sizer, defaultValue)
+        self.GetEnteredValue = self.GetValueDefault
+
+        button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton())
+        info_sizer.AddSizer(button_sizer, border=10, flag=wx.ALIGN_RIGHT | wx.ALL)
+
+        self.SetSizer(info_sizer)
         self.Fit()
-
-    def ToggleBoolValue(self, event):
-        value = self.ToggleButton.GetValue()
-        self.ValueTextCtrl.SetValue(text(value))
+        self.ValueCtrl.SetFocus()
+
+    # ---------------------------------
+    # default type methods
+    # ---------------------------------
+
+    def InitCtrlDefault(self, info_sizer, defaultValue):
+        """Add simple text control to change variable of any type"""
+        self.ValueCtrl = wx.TextCtrl(self)
+        self.ValueCtrl.SetValue(defaultValue)
+        info_sizer.AddWindow(self.ValueCtrl, border=10, proportion=1,
+                             flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT)
+
+    def GetValueDefault(self):
+        """
+        Returns text representation for a variable value
+        @return: variable value as a string
+        """
+        return text(self.ValueCtrl.GetValue())
+
+    # -----------------------------------------------
+    # integer and floating point number type methods
+    # ----------------------------------------------
+
+    def InitCtrlNumber(self, info_sizer, defaultValue):
+        """Add controls to change float and integer variables"""
+        sizer = wx.BoxSizer(wx.HORIZONTAL)
+        self.InitCtrlDefault(sizer, defaultValue)
+        self.SpinButtonCtrl = wx.SpinButton(self, style=wx.HORIZONTAL | wx.SP_WRAP)
+        sizer.AddWindow(self.SpinButtonCtrl, border=10,
+                        flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
+        self.Bind(wx.EVT_SPIN_UP, self.SpinButtonChanged)
+        self.Bind(wx.EVT_SPIN_DOWN, self.SpinButtonChanged)
+        info_sizer.AddWindow(sizer, proportion=1, flag=wx.EXPAND)
+
+    def SpinButtonChanged(self, evt):
+        """Increment/decrement variable value"""
+        value = self.GetValue()
+        if value is not None:
+            up = evt.GetEventType() == wx.EVT_SPIN_UP._getEvtType()
+            value = value + 1 if up else value - 1
+            self.ValueCtrl.SetValue(text(value))
+        evt.Skip()
+
+    # -----------------------------------------------
+    # bool type related methods
+    # ----------------------------------------------
+
+    def InitCtrlBool(self, info_sizer, defaultValue):
+        """Add button to change value of boolean variable"""
+        self.ValueCtrl = wx.ToggleButton(self, label=_("Toggle value"))
+        value = GetTypeValue[self.IEC_Type](defaultValue)
+        if value is not None:
+            self.ValueCtrl.SetValue(value)
+
+        info_sizer.AddWindow(self.ValueCtrl, border=10,
+                             flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW)
 
     def OnOK(self, event):
+        """
+        Checks new entered value
+        before closing dialog window
+        """
         message = None
-        value = self.ValueTextCtrl.GetValue()
+        ret = True
+        value = self.GetEnteredValue()
         if value == "":
             message = _("You must type a value!")
         elif GetTypeValue[self.IEC_Type](value) is None:
@@ -214,9 +280,13 @@
             dialog = wx.MessageDialog(self, message, _("Error"), wx.OK | wx.ICON_ERROR)
             dialog.ShowModal()
             dialog.Destroy()
+            ret = False
         else:
             self.EndModal(wx.ID_OK)
-        event.Skip()
+        event.Skip(ret)
 
     def GetValue(self):
-        return GetTypeValue[self.IEC_Type](wx.TextEntryDialog.GetValue(self))
+        """
+        Return new enforce value of particular type
+        """
+        return GetTypeValue[self.IEC_Type](self.GetEnteredValue())
--- a/editors/CodeFileEditor.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/editors/CodeFileEditor.py	Mon Mar 11 13:51:07 2019 +0100
@@ -280,20 +280,20 @@
     def RefreshSectionStyling(self):
         self.Colourise(0, -1)
 
-        text = self.GetText()
         for line in xrange(self.GetLineCount()):
             self.SetLineState(line, 0)
 
+        doc_end_pos = self.GetLength()
         for section in self.Controler.SECTIONS_NAMES:
             section_comments = self.SectionsComments[section]
-            start_pos = text.find(section_comments["comment"])
+            start_pos = self.FindText(0, doc_end_pos, section_comments["comment"])
             end_pos = start_pos + len(section_comments["comment"])
             self.StartStyling(start_pos, 0xff)
             self.SetStyling(end_pos - start_pos, STC_CODE_SECTION)
             self.SetLineState(self.LineFromPosition(start_pos), 1)
 
         self.StartStyling(end_pos, 0x00)
-        self.SetStyling(len(self.GetText()) - end_pos, stc.STC_STYLE_DEFAULT)
+        self.SetStyling(doc_end_pos - end_pos, stc.STC_STYLE_DEFAULT)
 
     def DoGetBestSize(self):
         return self.ParentWindow.GetPanelBestSize()
--- a/editors/Viewer.py	Mon Mar 11 09:18:58 2019 +0100
+++ b/editors/Viewer.py	Mon Mar 11 13:51:07 2019 +0100
@@ -3665,7 +3665,7 @@
 
     def OnMouseWheelWindow(self, event):
         if self.StartMousePos is None or self.StartScreenPos is None:
-            rotation = event.GetWheelRotation() / event.GetWheelDelta()
+            rotation = event.GetWheelRotation() // event.GetWheelDelta()
             if event.ShiftDown():
                 x, y = self.GetViewStart()
                 xp = max(0, min(x - rotation * 3, self.Editor.GetVirtualSize()[0] / self.Editor.GetScrollPixelsPerUnit()[0]))
--- a/i18n/Beremiz_bn_BD.po	Mon Mar 11 09:18:58 2019 +0100
+++ b/i18n/Beremiz_bn_BD.po	Mon Mar 11 13:51:07 2019 +0100
@@ -3,13 +3,16 @@
 # This file is distributed under the same license as the Beremiz package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# Adhir Dutta <likhon52@gmail.com>, 2017
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: Beremiz\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-06-15 16:39+0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2018-10-03 14:20+0300\n"
+"PO-Revision-Date: 2017-06-13 13:14+0000\n"
 "Last-Translator: Adhir Dutta <likhon52@gmail.com>, 2017\n"
 "Language-Team: Bengali (Bangladesh) (https://www.transifex.com/beremiz/teams/75746/bn_BD/)\n"
 "MIME-Version: 1.0\n"
@@ -43,37 +46,46 @@
 "\n"
 "উপাত্তসমূহ:\n"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   External"
 msgstr "বাহ্যিক"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   InOut"
 msgstr "ইনআউট"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Input"
 msgstr "ইনপুট"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   Local"
 msgstr "স্থানীয়"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Output"
 msgstr "আউটপুট"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "   Temp"
 msgstr "সাময়িক"
 
-#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
-#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
+#: ../etherlab/etherlab.py:301
+#, python-format
+msgid " (rev. %s)"
+msgstr ""
+
+#: ../etherlab/CommonEtherCATFunction.py:1599
+msgid " Warning..."
+msgstr ""
+
+#: ../dialogs/PouTransitionDialog.py:100 ../dialogs/ProjectDialog.py:72
+#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:157
 #, python-format
 msgid " and %s"
 msgstr "এবং %s"
 
-#: ../ProjectController.py:1182
+#: ../ProjectController.py:1236
 msgid " generation failed !\n"
 msgstr "উত্পাদন ব্যর্থ !\n"
 
@@ -97,7 +109,7 @@
 msgid "\"%s\" can't use itself!"
 msgstr "\"%s\" স্বীয়কার্যে ব্যবহার অযোগ্য! "
 
-#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
+#: ../IDEFrame.py:1705 ../IDEFrame.py:1724
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr "\"%s\"  config ইতিমধ্যেই বিদ্যমান!"
@@ -112,32 +124,32 @@
 msgid "\"%s\" configuration doesn't exist !!!"
 msgstr ""
 
-#: ../IDEFrame.py:1638
+#: ../IDEFrame.py:1655
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr "\"%s\" data type ইতিমধ্যেই বিদ্যমান!  "
 
-#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
+#: ../dialogs/PouTransitionDialog.py:111 ../dialogs/BlockPreviewDialog.py:220
 #: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
 #: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
 #: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
-#: ../controls/VariablePanel.py:425
+#: ../controls/VariablePanel.py:424
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "\"%s\" এই pou এর উপাদান ইতিমধ্যেই বিদ্যমান!"
 
-#: ../BeremizIDE.py:928
+#: ../BeremizIDE.py:925
 #, python-format
 msgid "\"%s\" folder is not a valid Beremiz project\n"
 msgstr "\"%s\" ফোল্ডারটিতে বেরিমিজ প্রকল্প নেই\n"
 
-#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
+#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:107
 #: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
-#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
-#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
-#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
-#: ../IDEFrame.py:1629
+#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:164
+#: ../etherlab/ConfigEditor.py:973 ../editors/ResourceEditor.py:481
+#: ../editors/ResourceEditor.py:518 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:603 ../editors/CodeFileEditor.py:793
+#: ../controls/VariablePanel.py:798 ../IDEFrame.py:1646
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr "\"%s\" একটি কি-ওয়ার্ড। তাই ব্যবহার অযোগ্য!"
@@ -152,27 +164,28 @@
 msgid "\"%s\" is not a valid folder!"
 msgstr "\"%s\" যৌক্তিক ফ্লোল্ডার নয়!"
 
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:105
 #: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
-#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
-#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
-#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
-#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
+#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:162
+#: ../etherlab/ConfigEditor.py:971 ../editors/ResourceEditor.py:479
+#: ../editors/ResourceEditor.py:516 ../editors/DataTypeEditor.py:601
+#: ../editors/CodeFileEditor.py:791 ../controls/VariablePanel.py:796
+#: ../IDEFrame.py:1644
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "\"%s\" একটি অযৌক্তিক শনাক্তকারী!"
 
-#: ../IDEFrame.py:2436
+#: ../IDEFrame.py:2454
 #, python-format
 msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
 msgstr "\"%s\" এক বা একাধিক POU তে ব্যবহৃত। আপনি কি কাজ করবেন?"
 
-#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
+#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:166
 #: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
 #: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
 #: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
-#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
-#: ../IDEFrame.py:1647
+#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:363
+#: ../IDEFrame.py:1664
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "\"%s\" POU ইতিমধ্যেই বিদ্যমান!"
@@ -201,7 +214,7 @@
 "\"%s\" সাংখ্যমানটি অ্যারের জন্য অযৌক্তিক মাত্রা!\n"
 "ডানের সাংখ্যমান অবশ্যই বামের চেয়ে বড় হতে হবে."
 
-#: ../PLCGenerator.py:1133
+#: ../PLCGenerator.py:1182
 #, python-brace-format
 msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
 msgstr "\"{a1}\" ফাংশন বাতিল \"{a2}\" তে POU: কোনও ইনপুট প্রযুক্ত হয়নি"
@@ -221,35 +234,35 @@
 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
 msgstr "\"{a1}\" এর সম্পদ \"{a2}\" এর configuration এ ব্যবহৃত হয়নি !!!"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:559
 #, python-format
 msgid "%03gms"
 msgstr "%03gমিসে"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:550
 #, python-format
 msgid "%dd"
 msgstr "%dদি"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:189
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:551
 #, python-format
 msgid "%dh"
 msgstr "%dঘ"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:188
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:552
 #, python-format
 msgid "%dm"
 msgstr "%dমি"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:186
 #, python-format
 msgid "%dms"
 msgstr "%dমিসে"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:187
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:553
 #, python-format
 msgid "%ds"
 msgstr "%dসে"
@@ -282,7 +295,12 @@
 msgid "%s body don't have text!"
 msgstr "%sপ্রধান অংশে  text নেই!"
 
-#: ../IDEFrame.py:388
+#: ../etherlab/ConfigEditor.py:856
+#, python-format
+msgid "%s's nodes"
+msgstr ""
+
+#: ../IDEFrame.py:391
 msgid "&Add Element"
 msgstr ""
 
@@ -291,35 +309,35 @@
 msgid "&Close"
 msgstr ""
 
-#: ../IDEFrame.py:361
+#: ../IDEFrame.py:364
 msgid "&Configuration"
 msgstr ""
 
-#: ../IDEFrame.py:350
+#: ../IDEFrame.py:353
 msgid "&Data Type"
 msgstr ""
 
-#: ../IDEFrame.py:392
+#: ../IDEFrame.py:395
 msgid "&Delete"
 msgstr ""
 
-#: ../IDEFrame.py:342
+#: ../IDEFrame.py:345
 msgid "&Display"
 msgstr ""
 
-#: ../IDEFrame.py:341
+#: ../IDEFrame.py:344
 msgid "&Edit"
 msgstr ""
 
-#: ../IDEFrame.py:340
+#: ../IDEFrame.py:343
 msgid "&File"
 msgstr ""
 
-#: ../IDEFrame.py:352
+#: ../IDEFrame.py:355
 msgid "&Function"
 msgstr ""
 
-#: ../IDEFrame.py:343
+#: ../IDEFrame.py:346
 msgid "&Help"
 msgstr ""
 
@@ -327,7 +345,7 @@
 msgid "&License"
 msgstr ""
 
-#: ../IDEFrame.py:356
+#: ../IDEFrame.py:359
 msgid "&Program"
 msgstr ""
 
@@ -339,10 +357,14 @@
 msgid "&Recent Projects"
 msgstr ""
 
-#: ../IDEFrame.py:358
+#: ../IDEFrame.py:361
 msgid "&Resource"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:450
+msgid "'Read from' and 'Write to' variables types are not compatible"
+msgstr ""
+
 #: ../controls/SearchResultPanel.py:247
 #, python-brace-format
 msgid "'{a1}' - {a2} match in project"
@@ -353,7 +375,7 @@
 msgid "'{a1}' - {a2} matches in project"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:98
+#: ../connectors/PYRO/__init__.py:99
 #, python-brace-format
 msgid "'{a1}' is located at {a2}\n"
 msgstr ""
@@ -363,8 +385,8 @@
 msgid "(%d matches)"
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
-#: ../dialogs/PouDialog.py:124
+#: ../dialogs/PouTransitionDialog.py:102 ../dialogs/PouActionDialog.py:101
+#: ../dialogs/PouDialog.py:159
 #, python-format
 msgid ", %s"
 msgstr ""
@@ -389,17 +411,17 @@
 msgid "1s"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
-#: ../IDEFrame.py:1715
+#: ../dialogs/PouDialog.py:168 ../IDEFrame.py:1667 ../IDEFrame.py:1713
+#: ../IDEFrame.py:1732
 #, python-format
 msgid ""
 "A POU has an element named \"%s\". This could cause a conflict. Do you wish "
 "to continue?"
 msgstr ""
 
-#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
+#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:109
 #: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
-#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
+#: ../controls/VariablePanel.py:800 ../IDEFrame.py:1681 ../IDEFrame.py:1694
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr ""
@@ -409,21 +431,21 @@
 msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/BrowseLocationsDialog.py:228
 msgid "A location must be selected!"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:485
+#: ../editors/ResourceEditor.py:483
 msgid "A task with the same name already exists!"
 msgstr ""
 
-#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
-#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
+#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:802
+#: ../IDEFrame.py:1683 ../IDEFrame.py:1696
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:778
+#: ../editors/CodeFileEditor.py:797
 #, python-format
 msgid "A variable with \"%s\" as name already exists!"
 msgstr ""
@@ -436,11 +458,15 @@
 msgid "Absolute number"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:48
+msgid "Access"
+msgstr ""
+
 #: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
 msgid "Action"
 msgstr ""
 
-#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
+#: ../editors/Viewer.py:656 ../editors/Viewer.py:2429
 msgid "Action Block"
 msgstr ""
 
@@ -465,56 +491,64 @@
 msgid "Actions:"
 msgstr ""
 
-#: ../editors/Viewer.py:473
+#: ../editors/Viewer.py:484
 msgid "Active"
 msgstr ""
 
 #: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
-#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
+#: ../BeremizIDE.py:998 ../editors/Viewer.py:689
 msgid "Add"
 msgstr ""
 
-#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
+#: ../IDEFrame.py:1941 ../IDEFrame.py:1976
 msgid "Add Action"
 msgstr ""
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "Add C code accessing located variables synchronously"
 msgstr ""
 
-#: ../IDEFrame.py:1907
+#: ../IDEFrame.py:1924
 msgid "Add Configuration"
 msgstr ""
 
-#: ../IDEFrame.py:1887
+#: ../IDEFrame.py:1904
 msgid "Add DataType"
 msgstr ""
 
-#: ../editors/Viewer.py:609
+#: ../editors/Viewer.py:612
 msgid "Add Divergence Branch"
 msgstr ""
 
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave to Master"
+msgstr ""
+
 #: ../dialogs/DiscoveryDialog.py:121
 msgid "Add IP"
 msgstr ""
 
-#: ../IDEFrame.py:1895
+#: ../IDEFrame.py:1912
 msgid "Add POU"
 msgstr ""
 
-#: ../features.py:34
+#: ../features.py:23
 msgid "Add Python code executed asynchronously"
 msgstr ""
 
-#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
+#: ../IDEFrame.py:1952 ../IDEFrame.py:2002
 msgid "Add Resource"
 msgstr ""
 
-#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
+#: ../IDEFrame.py:1930 ../IDEFrame.py:1973
 msgid "Add Transition"
 msgstr ""
 
-#: ../editors/Viewer.py:596
+#: ../editors/Viewer.py:599
 msgid "Add Wire Segment"
 msgstr ""
 
@@ -522,7 +556,7 @@
 msgid "Add a new initial step"
 msgstr ""
 
-#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
+#: ../editors/Viewer.py:2790 ../editors/SFCViewer.py:784
 msgid "Add a new jump"
 msgstr ""
 
@@ -530,7 +564,7 @@
 msgid "Add a new step"
 msgstr ""
 
-#: ../features.py:35
+#: ../features.py:24
 msgid "Add a simple WxGlade based GUI."
 msgstr ""
 
@@ -542,22 +576,46 @@
 msgid "Add element"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:283
+#: ../etherlab/ConfigEditor.py:1388
+msgid "Add file from ESI files database"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1360
+msgid "Add file to project"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:281
 msgid "Add instance"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:652
+msgid "Add process variable"
+msgstr ""
+
 #: ../canfestival/NetworkEditor.py:110
 msgid "Add slave"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:252
+#: ../etherlab/ConfigEditor.py:679
+msgid "Add startup service variable"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:250
 msgid "Add task"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
+#: ../bacnet/BacnetSlaveEditor.py:811 ../editors/CodeFileEditor.py:672
+#: ../controls/VariablePanel.py:483
 msgid "Add variable"
 msgstr ""
 
+#: ../etherlab/etherlab.py:186
+msgid ""
+"Adding a PDO not defined in default configuration\n"
+"for mapping needed location variables\n"
+"(1 if possible)"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:33
 msgid "Addition"
 msgstr ""
@@ -566,27 +624,28 @@
 msgid "Additional function blocks"
 msgstr ""
 
-#: ../editors/Viewer.py:669
+#: ../editors/Viewer.py:672
 msgid "Adjust Block Size"
 msgstr ""
 
-#: ../editors/Viewer.py:1720
+#: ../editors/Viewer.py:1722
 msgid "Alignment"
 msgstr ""
 
 #: ../dialogs/BrowseLocationsDialog.py:42
-#: ../dialogs/BrowseLocationsDialog.py:53
-#: ../dialogs/BrowseLocationsDialog.py:152
-#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
-#: ../controls/VariablePanel.py:88
+#: ../dialogs/BrowseLocationsDialog.py:50
+#: ../dialogs/BrowseLocationsDialog.py:151
+#: ../dialogs/BrowseLocationsDialog.py:154 ../etherlab/ConfigEditor.py:65
+#: ../etherlab/ConfigEditor.py:853 ../controls/LogViewer.py:307
+#: ../controls/VariablePanel.py:85
 msgid "All"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:37
+#: ../editors/FileManagementPanel.py:51
 msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
 msgstr ""
 
-#: ../ProjectController.py:1670
+#: ../ProjectController.py:1752
 msgid "Already connected. Please disconnect\n"
 msgstr ""
 
@@ -599,6 +658,23 @@
 msgid "An instance with the same name already exists!"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:975
+#, python-format
+msgid "An variable named \"%s\" already exists!"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:935
+msgid "Analog Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:934
+msgid "Analog Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:933
+msgid "Analog Value Objects"
+msgstr ""
+
 #: ../dialogs/ConnectionDialog.py:103
 msgid "Apply name modification to all continuations with the same name"
 msgstr ""
@@ -620,7 +696,7 @@
 msgstr ""
 
 #: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
-#: ../controls/VariablePanel.py:872
+#: ../controls/VariablePanel.py:883
 msgid "Array"
 msgstr ""
 
@@ -628,22 +704,34 @@
 msgid "Assignment"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:226
+#: ../dialogs/FBDVariableDialog.py:227
 msgid "At least a variable or an expression must be selected!"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:111
+#: ../controls/ProjectPropertiesPanel.py:113
 msgid "Author"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:108
+#: ../controls/ProjectPropertiesPanel.py:110
 msgid "Author Name (optional):"
 msgstr ""
 
+#: ../etherlab/EthercatCIA402Slave.py:125
+msgid "Axis Pos"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:118
+msgid "Axis Ref"
+msgstr ""
+
 #: ../dialogs/FindInPouDialog.py:80
 msgid "Backward"
 msgstr ""
 
+#: ../features.py:19
+msgid "Bacnet support"
+msgstr ""
+
 #: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
 #, python-format
 msgid "Bad location size : %s"
@@ -654,14 +742,30 @@
 msgid "Base Type:"
 msgstr ""
 
-#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
+#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:841
 msgid "Base Types"
 msgstr ""
 
-#: ../BeremizIDE.py:483
+#: ../BeremizIDE.py:479
 msgid "Beremiz"
 msgstr ""
 
+#: ../runtime/NevowServer.py:201
+msgid "Beremiz Runtime Settings"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:938
+msgid "Binary Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:937
+msgid "Binary Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:936
+msgid "Binary Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:70
 msgid "Binary selection (1 of 2)"
 msgstr ""
@@ -690,7 +794,7 @@
 msgid "Bitwise inverting"
 msgstr ""
 
-#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
+#: ../editors/Viewer.py:624 ../editors/Viewer.py:2442
 msgid "Block"
 msgstr ""
 
@@ -702,11 +806,11 @@
 msgid "Block name"
 msgstr ""
 
-#: ../editors/Viewer.py:586
+#: ../editors/Viewer.py:589
 msgid "Bottom"
 msgstr ""
 
-#: ../ProjectController.py:1400
+#: ../runtime/PlcStatus.py:11
 msgid "Broken"
 msgstr ""
 
@@ -715,27 +819,27 @@
 msgid "Browse %s values library"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:72
+#: ../dialogs/BrowseLocationsDialog.py:69
 msgid "Browse Locations"
 msgstr ""
 
-#: ../ProjectController.py:1815
+#: ../ProjectController.py:1898
 msgid "Build"
 msgstr ""
 
-#: ../ProjectController.py:1335
+#: ../ProjectController.py:1397
 msgid "Build directory already clean\n"
 msgstr ""
 
-#: ../ProjectController.py:1816
+#: ../ProjectController.py:1899
 msgid "Build project into build folder"
 msgstr ""
 
-#: ../ProjectController.py:1108
+#: ../ProjectController.py:1155
 msgid "C Build crashed !\n"
 msgstr ""
 
-#: ../ProjectController.py:1105
+#: ../ProjectController.py:1152
 msgid "C Build failed.\n"
 msgstr ""
 
@@ -743,7 +847,7 @@
 msgid "C code"
 msgstr ""
 
-#: ../ProjectController.py:1186
+#: ../ProjectController.py:1240
 msgid "C code generated successfully.\n"
 msgstr ""
 
@@ -756,7 +860,7 @@
 msgid "C compilation of %s failed.\n"
 msgstr ""
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "C extension"
 msgstr ""
 
@@ -772,16 +876,20 @@
 msgid "CANOpen slave"
 msgstr ""
 
-#: ../features.py:31
+#: ../features.py:18
 msgid "CANopen support"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:858
+msgid "CIA402 nodes"
+msgstr ""
+
 #: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
 #: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
 msgid "Can only generate execution order on FBD networks!"
 msgstr ""
 
-#: ../controls/VariablePanel.py:291
+#: ../controls/VariablePanel.py:290
 msgid "Can only give a location to local or global variables"
 msgstr ""
 
@@ -790,7 +898,7 @@
 msgid "Can't generate program to file %s!"
 msgstr ""
 
-#: ../controls/VariablePanel.py:289
+#: ../controls/VariablePanel.py:288
 msgid "Can't give a location to a function block instance"
 msgstr ""
 
@@ -799,7 +907,7 @@
 msgid "Can't save project to file %s!"
 msgstr ""
 
-#: ../controls/VariablePanel.py:339
+#: ../controls/VariablePanel.py:338
 msgid "Can't set an initial value to a function block instance"
 msgstr ""
 
@@ -813,11 +921,11 @@
 msgid "Cannot find lower free IEC channel than %d\n"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:139
+#: ../connectors/PYRO/__init__.py:140
 msgid "Cannot get PLC status - connection failed.\n"
 msgstr ""
 
-#: ../ProjectController.py:967
+#: ../ProjectController.py:1013
 msgid "Cannot open/parse VARIABLES.csv!\n"
 msgstr ""
 
@@ -828,7 +936,7 @@
 "(ID:{a2},Idx:{a3},sIdx:{a4}))"
 msgstr ""
 
-#: ../ProjectController.py:1761
+#: ../ProjectController.py:1842
 msgid "Cannot transfer while PLC is running. Stop it now?"
 msgstr ""
 
@@ -836,27 +944,27 @@
 msgid "Case sensitive"
 msgstr ""
 
-#: ../editors/Viewer.py:581
+#: ../editors/Viewer.py:584
 msgid "Center"
 msgstr ""
 
-#: ../Beremiz_service.py:276
+#: ../Beremiz_service.py:289
 msgid "Change IP of interface to bind"
 msgstr ""
 
-#: ../Beremiz_service.py:275
+#: ../Beremiz_service.py:288
 msgid "Change Name"
 msgstr ""
 
-#: ../IDEFrame.py:1977
+#: ../IDEFrame.py:1994
 msgid "Change POU Type To"
 msgstr ""
 
-#: ../Beremiz_service.py:277
+#: ../Beremiz_service.py:290
 msgid "Change Port Number"
 msgstr ""
 
-#: ../Beremiz_service.py:278
+#: ../Beremiz_service.py:291
 msgid "Change working directory"
 msgstr ""
 
@@ -868,16 +976,21 @@
 msgid "Choose a SVG file"
 msgstr ""
 
-#: ../ProjectController.py:561
+#: ../etherlab/EtherCATManagementEditor.py:911
+#: ../etherlab/EtherCATManagementEditor.py:1306
+msgid "Choose a binary file"
+msgstr ""
+
+#: ../ProjectController.py:582
 msgid "Choose a directory to save project"
 msgstr ""
 
-#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
-#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
+#: ../canfestival/canfestival.py:171 ../bacnet/bacnet.py:434
+#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
 msgid "Choose a file"
 msgstr ""
 
-#: ../BeremizIDE.py:900
+#: ../BeremizIDE.py:897
 msgid "Choose a project"
 msgstr ""
 
@@ -886,19 +999,23 @@
 msgid "Choose a value for %s:"
 msgstr ""
 
-#: ../Beremiz_service.py:333
+#: ../Beremiz_service.py:346
 msgid "Choose a working directory "
 msgstr ""
 
-#: ../BeremizIDE.py:864
+#: ../etherlab/ConfigEditor.py:1234
+msgid "Choose an XML file"
+msgstr ""
+
+#: ../BeremizIDE.py:861
 msgid "Choose an empty directory for new project"
 msgstr ""
 
-#: ../ProjectController.py:468
+#: ../ProjectController.py:483
 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
 msgstr ""
 
-#: ../ProjectController.py:435
+#: ../ProjectController.py:450
 msgid "Chosen folder isn't empty. You can't use it for a new project!"
 msgstr ""
 
@@ -906,15 +1023,15 @@
 msgid "Class"
 msgstr ""
 
-#: ../controls/VariablePanel.py:472
+#: ../controls/VariablePanel.py:474
 msgid "Class Filter:"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:74
+#: ../dialogs/FBDVariableDialog.py:75
 msgid "Class:"
 msgstr ""
 
-#: ../ProjectController.py:1821
+#: ../ProjectController.py:1904
 msgid "Clean"
 msgstr ""
 
@@ -922,32 +1039,33 @@
 msgid "Clean log messages"
 msgstr ""
 
-#: ../ProjectController.py:1822
+#: ../ProjectController.py:1905
 msgid "Clean project build folder"
 msgstr ""
 
-#: ../ProjectController.py:1332
+#: ../ProjectController.py:1394
 msgid "Cleaning the build directory\n"
 msgstr ""
 
-#: ../IDEFrame.py:437
+#: ../IDEFrame.py:439
 msgid "Clear Errors"
 msgstr ""
 
-#: ../editors/Viewer.py:680
+#: ../editors/Viewer.py:683
 msgid "Clear Execution Order"
 msgstr ""
 
 #: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
+#: ../etherlab/ConfigEditor.py:1361
 msgid "Close"
 msgstr ""
 
-#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
+#: ../BeremizIDE.py:623 ../PLCOpenEditor.py:183
 msgid "Close Application"
 msgstr ""
 
-#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
-#: ../IDEFrame.py:1040
+#: ../BeremizIDE.py:253 ../BeremizIDE.py:562 ../PLCOpenEditor.py:81
+#: ../IDEFrame.py:1053
 msgid "Close Project"
 msgstr ""
 
@@ -955,28 +1073,32 @@
 msgid "Close Tab"
 msgstr ""
 
-#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
+#: ../editors/Viewer.py:641 ../editors/Viewer.py:2450
 msgid "Coil"
 msgstr ""
 
-#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
+#: ../editors/Viewer.py:662 ../editors/LDViewer.py:517
 msgid "Comment"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:66
+msgid "Communication Parameters"
+msgstr ""
+
 #: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
 #: ../PLCOpenEditor.py:138
 msgid "Community support"
 msgstr ""
 
-#: ../dialogs/ProjectDialog.py:65
+#: ../dialogs/ProjectDialog.py:63
 msgid "Company Name"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:106
+#: ../controls/ProjectPropertiesPanel.py:108
 msgid "Company Name (required):"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:107
+#: ../controls/ProjectPropertiesPanel.py:109
 msgid "Company URL (optional):"
 msgstr ""
 
@@ -984,7 +1106,7 @@
 msgid "Comparison"
 msgstr ""
 
-#: ../ProjectController.py:756
+#: ../ProjectController.py:787
 msgid "Compiling IEC Program into C code...\n"
 msgstr ""
 
@@ -1010,25 +1132,25 @@
 
 #: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
 #: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
-#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:353
 msgid "Confirm or change variable name"
 msgstr ""
 
-#: ../ProjectController.py:1842
+#: ../ProjectController.py:1925
 msgid "Connect"
 msgstr ""
 
-#: ../ProjectController.py:1843
+#: ../ProjectController.py:1926
 msgid "Connect to the target PLC"
 msgstr ""
 
-#: ../ProjectController.py:1391
+#: ../ProjectController.py:1469
 #, python-format
 msgid "Connected to URI: %s"
 msgstr ""
 
-#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
-#: ../editors/Viewer.py:2441
+#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:626
+#: ../editors/Viewer.py:2443
 msgid "Connection"
 msgstr ""
 
@@ -1036,25 +1158,25 @@
 msgid "Connection Properties"
 msgstr ""
 
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1773
 msgid "Connection canceled!\n"
 msgstr ""
 
-#: ../ProjectController.py:1714
+#: ../ProjectController.py:1797
 #, python-format
 msgid "Connection failed to %s!\n"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
+#: ../connectors/PYRO/__init__.py:124 ../connectors/WAMP/__init__.py:121
 msgid "Connection lost!\n"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:110
+#: ../connectors/PYRO/__init__.py:111
 #, python-format
 msgid "Connection to '%s' failed.\n"
 msgstr ""
 
-#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
+#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1678
 msgid "Connector"
 msgstr ""
 
@@ -1062,7 +1184,7 @@
 msgid "Connectors:"
 msgstr ""
 
-#: ../BeremizIDE.py:378
+#: ../BeremizIDE.py:374
 msgid "Console"
 msgstr ""
 
@@ -1070,18 +1192,22 @@
 msgid "Constant"
 msgstr ""
 
-#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
+#: ../editors/Viewer.py:637 ../editors/Viewer.py:2446
 msgid "Contact"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:217
+#: ../controls/ProjectPropertiesPanel.py:219
 msgid "Content Description (optional):"
 msgstr ""
 
-#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
+#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1679
 msgid "Continuation"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Control Byte"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:18
 msgid "Conversion from BCD"
 msgstr ""
@@ -1098,20 +1224,20 @@
 msgid "Conversion to time-of-day"
 msgstr ""
 
-#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
-#: ../IDEFrame.py:427
+#: ../editors/Viewer.py:698 ../controls/LogViewer.py:713 ../IDEFrame.py:375
+#: ../IDEFrame.py:428
 msgid "Copy"
 msgstr ""
 
-#: ../IDEFrame.py:1964
+#: ../IDEFrame.py:1981
 msgid "Copy POU"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:68
+#: ../editors/FileManagementPanel.py:67
 msgid "Copy file from left folder to right"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:67
+#: ../editors/FileManagementPanel.py:66
 msgid "Copy file from right folder to left"
 msgstr ""
 
@@ -1131,6 +1257,16 @@
 msgid "Couldn't import old %s file."
 msgstr ""
 
+#: ../etherlab/EthercatMaster.py:258
+#, python-format
+msgid "Couldn't load %s network configuration file."
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:279
+#, python-format
+msgid "Couldn't load %s network process variables file."
+msgstr ""
+
 #: ../ConfigTreeNode.py:630
 #, python-brace-format
 msgid ""
@@ -1145,15 +1281,22 @@
 " {a2}"
 msgstr ""
 
+#: ../etherlab/etherlab.py:264
+#, python-brace-format
+msgid ""
+"Couldn't load {a1} XML file:\n"
+"{a2}"
+msgstr ""
+
 #: ../PLCControler.py:552
 msgid "Couldn't paste non-POU object."
 msgstr ""
 
-#: ../ProjectController.py:1636
+#: ../ProjectController.py:1717
 msgid "Couldn't start PLC !\n"
 msgstr ""
 
-#: ../ProjectController.py:1644
+#: ../ProjectController.py:1725
 msgid "Couldn't stop PLC !\n"
 msgstr ""
 
@@ -1161,43 +1304,43 @@
 msgid "Create HMI"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:54
+#: ../dialogs/PouDialog.py:48
 msgid "Create a new POU"
 msgstr ""
 
-#: ../dialogs/PouActionDialog.py:45
+#: ../dialogs/PouActionDialog.py:42
 msgid "Create a new action"
 msgstr ""
 
-#: ../IDEFrame.py:166
+#: ../IDEFrame.py:313
 msgid "Create a new action block"
 msgstr ""
 
-#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
+#: ../IDEFrame.py:262 ../IDEFrame.py:292 ../IDEFrame.py:325
 msgid "Create a new block"
 msgstr ""
 
-#: ../IDEFrame.py:139
+#: ../IDEFrame.py:286
 msgid "Create a new branch"
 msgstr ""
 
-#: ../IDEFrame.py:133
+#: ../IDEFrame.py:280
 msgid "Create a new coil"
 msgstr ""
 
-#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
+#: ../IDEFrame.py:256 ../IDEFrame.py:271 ../IDEFrame.py:301
 msgid "Create a new comment"
 msgstr ""
 
-#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
+#: ../IDEFrame.py:265 ../IDEFrame.py:295 ../IDEFrame.py:328
 msgid "Create a new connection"
 msgstr ""
 
-#: ../IDEFrame.py:136 ../IDEFrame.py:187
+#: ../IDEFrame.py:283 ../IDEFrame.py:334
 msgid "Create a new contact"
 msgstr ""
 
-#: ../IDEFrame.py:169
+#: ../IDEFrame.py:316
 msgid "Create a new divergence"
 msgstr ""
 
@@ -1205,43 +1348,55 @@
 msgid "Create a new divergence or convergence"
 msgstr ""
 
-#: ../IDEFrame.py:157
+#: ../IDEFrame.py:304
 msgid "Create a new initial step"
 msgstr ""
 
-#: ../IDEFrame.py:172
+#: ../IDEFrame.py:319
 msgid "Create a new jump"
 msgstr ""
 
-#: ../IDEFrame.py:127 ../IDEFrame.py:184
+#: ../IDEFrame.py:274 ../IDEFrame.py:331
 msgid "Create a new power rail"
 msgstr ""
 
-#: ../IDEFrame.py:130
+#: ../IDEFrame.py:277
 msgid "Create a new rung"
 msgstr ""
 
-#: ../IDEFrame.py:160
+#: ../IDEFrame.py:307
 msgid "Create a new step"
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
+#: ../dialogs/PouTransitionDialog.py:45 ../IDEFrame.py:310
 msgid "Create a new transition"
 msgstr ""
 
-#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
+#: ../IDEFrame.py:259 ../IDEFrame.py:289 ../IDEFrame.py:322
 msgid "Create a new variable"
 msgstr ""
 
+#: ../etherlab/etherlab.py:183
+msgid "Creating new PDO"
+msgstr ""
+
 #: ../dialogs/AboutDialog.py:109
 msgid "Credits"
 msgstr ""
 
-#: ../Beremiz_service.py:424
+#: ../runtime/WampClient.py:400
+msgid "Current status"
+msgstr ""
+
+#: ../Beremiz_service.py:437
 msgid "Current working directory :"
 msgstr ""
 
-#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
+#: ../runtime/WampClient.py:161
+msgid "Custom protocol options failed :"
+msgstr ""
+
+#: ../editors/Viewer.py:697 ../IDEFrame.py:373 ../IDEFrame.py:427
 msgid "Cut"
 msgstr ""
 
@@ -1290,11 +1445,11 @@
 msgid "Date subtraction"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:46
+#: ../dialogs/DurationEditorDialog.py:57
 msgid "Days:"
 msgstr ""
 
-#: ../ProjectController.py:1729
+#: ../ProjectController.py:1809
 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
 msgstr ""
 
@@ -1302,42 +1457,51 @@
 msgid "Debug instance"
 msgstr ""
 
-#: ../editors/Viewer.py:490
+#: ../editors/Viewer.py:493
 #, python-format
 msgid "Debug: %s"
 msgstr ""
 
-#: ../ProjectController.py:1471
+#: ../ProjectController.py:1548
 #, python-format
 msgid "Debug: Unknown variable '%s'\n"
 msgstr ""
 
-#: ../ProjectController.py:1469
+#: ../ProjectController.py:1545
 #, python-format
 msgid "Debug: Unsupported type to debug '%s'\n"
 msgstr ""
 
-#: ../IDEFrame.py:660
+#: ../IDEFrame.py:666
 msgid "Debugger"
 msgstr ""
 
-#: ../ProjectController.py:1726
+#: ../ProjectController.py:1805
 msgid "Debugger ready\n"
 msgstr ""
 
-#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Default Size"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:174
+#, python-format
+msgid "Definition conflict for location \"%s\""
+msgstr ""
+
+#: ../BeremizIDE.py:1001 ../editors/Viewer.py:673 ../IDEFrame.py:2010
 msgid "Delete"
 msgstr ""
 
-#: ../editors/Viewer.py:610
+#: ../editors/Viewer.py:613
 msgid "Delete Divergence Branch"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:157
+#: ../etherlab/ConfigEditor.py:1261 ../editors/FileManagementPanel.py:156
 msgid "Delete File"
 msgstr ""
 
-#: ../editors/Viewer.py:597
+#: ../editors/Viewer.py:600
 msgid "Delete Wire Segment"
 msgstr ""
 
@@ -1353,11 +1517,12 @@
 msgid "Derivation Type:"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:735
+#: ../etherlab/ConfigEditor.py:346 ../etherlab/ConfigEditor.py:465
+#: ../editors/CodeFileEditor.py:754
 msgid "Description"
 msgstr ""
 
-#: ../controls/VariablePanel.py:463
+#: ../controls/VariablePanel.py:465
 msgid "Description:"
 msgstr ""
 
@@ -1369,7 +1534,7 @@
 msgid "Direction"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:102
+#: ../dialogs/BrowseLocationsDialog.py:101
 msgid "Direction:"
 msgstr ""
 
@@ -1377,19 +1542,19 @@
 msgid "Directly"
 msgstr ""
 
-#: ../ProjectController.py:1855
+#: ../ProjectController.py:1938
 msgid "Disconnect"
 msgstr ""
 
-#: ../ProjectController.py:1856
+#: ../ProjectController.py:1939
 msgid "Disconnect from PLC"
 msgstr ""
 
-#: ../ProjectController.py:1401
+#: ../runtime/PlcStatus.py:14
 msgid "Disconnected"
 msgstr ""
 
-#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
+#: ../editors/Viewer.py:657 ../editors/Viewer.py:2438
 msgid "Divergence"
 msgstr ""
 
@@ -1397,7 +1562,7 @@
 msgid "Division"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:156
+#: ../etherlab/ConfigEditor.py:1260 ../editors/FileManagementPanel.py:155
 #, python-format
 msgid "Do you really want to delete the file '%s'?"
 msgstr ""
@@ -1410,15 +1575,31 @@
 msgid "Done"
 msgstr ""
 
+#: ../runtime/WampClient.py:384
+msgid "Download"
+msgstr ""
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Duration"
 msgstr ""
 
+#: ../bacnet/bacnet.py:437
+msgid "EDE files (*_EDE.csv)|*_EDE.csv|All files|*.*"
+msgstr ""
+
 #: ../canfestival/canfestival.py:174
 msgid "EDS files (*.eds)|*.eds|All files|*.*"
 msgstr ""
 
-#: ../editors/Viewer.py:668
+#: ../etherlab/ConfigEditor.py:1342
+msgid "ESI Files Database management"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1109
+msgid "ESI Files:"
+msgstr ""
+
+#: ../editors/Viewer.py:671
 msgid "Edit Block"
 msgstr ""
 
@@ -1430,7 +1611,7 @@
 msgid "Edit Contact Values"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:62
+#: ../dialogs/DurationEditorDialog.py:54
 msgid "Edit Duration"
 msgstr ""
 
@@ -1450,11 +1631,11 @@
 msgid "Edit array type properties"
 msgstr ""
 
-#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
+#: ../dialogs/CommentEditDialog.py:53
 msgid "Edit comment"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:69
+#: ../editors/FileManagementPanel.py:68
 msgid "Edit file"
 msgstr ""
 
@@ -1462,11 +1643,11 @@
 msgid "Edit item"
 msgstr ""
 
-#: ../editors/Viewer.py:3059
+#: ../editors/Viewer.py:3058
 msgid "Edit jump target"
 msgstr ""
 
-#: ../ProjectController.py:1873
+#: ../ProjectController.py:1956
 msgid "Edit raw IEC code added to code generated by PLCGenerator"
 msgstr ""
 
@@ -1478,11 +1659,11 @@
 msgid "Edit transition"
 msgstr ""
 
-#: ../IDEFrame.py:632
+#: ../IDEFrame.py:638
 msgid "Editor ToolBar"
 msgstr ""
 
-#: ../ProjectController.py:1294
+#: ../ProjectController.py:1355
 msgid "Editor selection"
 msgstr ""
 
@@ -1490,7 +1671,7 @@
 msgid "Elements :"
 msgstr ""
 
-#: ../ProjectController.py:1399
+#: ../runtime/PlcStatus.py:15
 msgid "Empty"
 msgstr ""
 
@@ -1498,18 +1679,45 @@
 msgid "Empty dimension isn't allowed."
 msgstr ""
 
-#: ../Beremiz_service.py:341
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Enable"
+msgstr ""
+
+#: ../runtime/WampClient.py:410
+msgid "Enable WAMP connection"
+msgstr ""
+
+#: ../Beremiz_service.py:354
 msgid "Enter a name "
 msgstr ""
 
-#: ../Beremiz_service.py:326
+#: ../Beremiz_service.py:339
 msgid "Enter a port number "
 msgstr ""
 
-#: ../Beremiz_service.py:317
+#: ../etherlab/EtherCATManagementEditor.py:627
+msgid ""
+"Enter hex or dec value (if enter dec value, it automatically conversed hex "
+"value)"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:1964
+msgid "Enter hex(0xnnnn) or dec(n) value"
+msgstr ""
+
+#: ../Beremiz_service.py:330
 msgid "Enter the IP of the interface to bind"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:502
+msgid "Entry can't be write through SDO"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:569
+#, python-brace-format
+msgid "Entry index 0x{a1:.4x}, subindex 0x{a2:.2x} not mapped for device {a3}"
+msgstr ""
+
 #: ../editors/DataTypeEditor.py:60
 msgid "Enumerated"
 msgstr ""
@@ -1520,45 +1728,48 @@
 
 #: ../dialogs/ForceVariableDialog.py:213
 #: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
-#: ../dialogs/DurationEditorDialog.py:124
-#: ../dialogs/DurationEditorDialog.py:170
-#: ../dialogs/PouTransitionDialog.py:114 ../dialogs/BlockPreviewDialog.py:237
-#: ../dialogs/ProjectDialog.py:80 ../dialogs/ArrayTypeDialog.py:114
-#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/DurationEditorDialog.py:125
+#: ../dialogs/DurationEditorDialog.py:172
+#: ../dialogs/PouTransitionDialog.py:113 ../dialogs/BlockPreviewDialog.py:237
+#: ../dialogs/ProjectDialog.py:78 ../dialogs/ArrayTypeDialog.py:114
+#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:228
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
-#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:143
+#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:178
 #: ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
-#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
-#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
-#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
-#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
-#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
-#: ../ProjectController.py:391 ../ProjectController.py:531
-#: ../ProjectController.py:538 ../controls/FolderTree.py:222
-#: ../controls/ProjectPropertiesPanel.py:306
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
+#: ../etherlab/ConfigEditor.py:458 ../etherlab/ConfigEditor.py:510
+#: ../etherlab/ConfigEditor.py:981 ../etherlab/ConfigEditor.py:1047
+#: ../etherlab/ConfigEditor.py:1246 ../etherlab/ConfigEditor.py:1314
+#: ../etherlab/EthercatMaster.py:463 ../editors/ResourceEditor.py:468
+#: ../editors/Viewer.py:467 ../editors/LDViewer.py:677
+#: ../editors/LDViewer.py:893 ../editors/LDViewer.py:897
+#: ../editors/DataTypeEditor.py:566 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:590 ../editors/DataTypeEditor.py:759
+#: ../editors/DataTypeEditor.py:766 ../editors/TextViewer.py:390
+#: ../editors/CodeFileEditor.py:779 ../ProjectController.py:404
+#: ../ProjectController.py:548 ../ProjectController.py:557
+#: ../controls/FolderTree.py:222 ../controls/ProjectPropertiesPanel.py:308
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:163
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
-#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
-#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
-#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
-#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
+#: ../controls/VariablePanel.py:430 ../controls/VariablePanel.py:784
+#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1049 ../IDEFrame.py:1667
+#: ../IDEFrame.py:1708 ../IDEFrame.py:1713 ../IDEFrame.py:1727
+#: ../IDEFrame.py:1732 ../Beremiz_service.py:234
 msgid "Error"
 msgstr ""
 
-#: ../ProjectController.py:811
+#: ../ProjectController.py:848
 msgid ""
 "Error : At least one configuration and one resource must be declared in PLC "
 "!\n"
 msgstr ""
 
-#: ../ProjectController.py:803
+#: ../ProjectController.py:838
 #, python-format
 msgid "Error : IEC to C compiler returned %d\n"
 msgstr ""
 
-#: ../ProjectController.py:731
+#: ../ProjectController.py:762
 #, python-format
 msgid ""
 "Error in ST/IL/SFC code generator :\n"
@@ -1570,7 +1781,21 @@
 msgid "Error while saving \"%s\"\n"
 msgstr ""
 
-#: ../canfestival/canfestival.py:179
+#: ../bacnet/bacnet.py:581
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x: {a2}' contains objects with duplicate object "
+"identifiers.\n"
+msgstr ""
+
+#: ../bacnet/bacnet.py:573
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x:{a2}' contains objects with duplicate object "
+"names.\n"
+msgstr ""
+
+#: ../canfestival/canfestival.py:179 ../bacnet/bacnet.py:444
 msgid "Error: Export slave failed\n"
 msgstr ""
 
@@ -1589,7 +1814,23 @@
 msgid "Error: No PLC built\n"
 msgstr ""
 
-#: ../ProjectController.py:1708
+#: ../etherlab/ConfigEditor.py:269
+msgid "EtherCAT Management"
+msgstr ""
+
+#: ../features.py:20
+msgid "EtherCAT master"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:302
+msgid "Ethercat Slave Type"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:267
+msgid "Ethercat node"
+msgstr ""
+
+#: ../ProjectController.py:1791
 #, python-format
 msgid "Exception while connecting %s!\n"
 msgstr ""
@@ -1598,11 +1839,11 @@
 msgid "Execution Control:"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
+#: ../dialogs/FBDVariableDialog.py:85 ../dialogs/FBDBlockDialog.py:111
 msgid "Execution Order:"
 msgstr ""
 
-#: ../features.py:36
+#: ../features.py:25
 msgid "Experimental web based HMI"
 msgstr ""
 
@@ -1614,44 +1855,48 @@
 msgid "Exponentiation"
 msgstr ""
 
+#: ../bacnet/bacnet.py:156
+msgid "Export BACnet slave to EDE file"
+msgstr ""
+
 #: ../canfestival/canfestival.py:186
 msgid "Export CanOpen slave to EDS file"
 msgstr ""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
 msgid "Export graph values to clipboard"
 msgstr ""
 
-#: ../canfestival/canfestival.py:185
+#: ../canfestival/canfestival.py:185 ../bacnet/bacnet.py:155
 msgid "Export slave"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:94
+#: ../dialogs/FBDVariableDialog.py:95
 msgid "Expression:"
 msgstr ""
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "External"
 msgstr ""
 
-#: ../ProjectController.py:826
+#: ../ProjectController.py:866
 msgid "Extracting Located Variables...\n"
 msgstr ""
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "FBD"
 msgstr ""
 
-#: ../ProjectController.py:1773
+#: ../ProjectController.py:1855
 msgid "Failed : Must build before transfer.\n"
 msgstr ""
 
-#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:559
 msgid "Falling Edge"
 msgstr ""
 
-#: ../ProjectController.py:1098
+#: ../ProjectController.py:1145
 msgid "Fatal : cannot get builder.\n"
 msgstr ""
 
@@ -1660,12 +1905,12 @@
 msgid "Fetching %s"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:167
+#: ../dialogs/DurationEditorDialog.py:169
 #, python-format
 msgid "Field %s hasn't a valid value!"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:169
+#: ../dialogs/DurationEditorDialog.py:171
 #, python-format
 msgid "Fields %s haven't a valid value!"
 msgstr ""
@@ -1675,16 +1920,20 @@
 msgid "File '%s' already exists!"
 msgstr ""
 
+#: ../runtime/WampClient.py:407
+msgid "File containing secret for that ID"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
-#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
+#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:380
 msgid "Find"
 msgstr ""
 
-#: ../IDEFrame.py:379
+#: ../IDEFrame.py:382
 msgid "Find Next"
 msgstr ""
 
-#: ../IDEFrame.py:381
+#: ../IDEFrame.py:384
 msgid "Find Previous"
 msgstr ""
 
@@ -1696,7 +1945,7 @@
 msgid "Find:"
 msgstr ""
 
-#: ../editors/Viewer.py:1633
+#: ../editors/Viewer.py:1635
 msgid "Force value"
 msgstr ""
 
@@ -1704,9 +1953,9 @@
 msgid "Forcing Variable Value"
 msgstr ""
 
-#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
-#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
-#: ../dialogs/PouDialog.py:125
+#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/ProjectDialog.py:77 ../dialogs/PouActionDialog.py:102
+#: ../dialogs/PouDialog.py:160
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr ""
@@ -1724,20 +1973,24 @@
 msgid "Forward"
 msgstr ""
 
-#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
+#: ../IDEFrame.py:455
+msgid "Full screen"
+msgstr ""
+
+#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1797
 msgid "Function"
 msgstr ""
 
-#: ../IDEFrame.py:354
+#: ../IDEFrame.py:357
 msgid "Function &Block"
 msgstr ""
 
-#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
-#: ../IDEFrame.py:1972
+#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1796
+#: ../IDEFrame.py:1989
 msgid "Function Block"
 msgstr ""
 
-#: ../controls/VariablePanel.py:868
+#: ../controls/VariablePanel.py:879
 msgid "Function Block Types"
 msgstr ""
 
@@ -1762,19 +2015,19 @@
 msgid "Generate Program"
 msgstr ""
 
-#: ../ProjectController.py:722
+#: ../ProjectController.py:750
 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
 msgstr ""
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "Global"
 msgstr ""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
 msgid "Go to current value"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:189
+#: ../controls/ProjectPropertiesPanel.py:192
 msgid "Graphics"
 msgstr ""
 
@@ -1786,32 +2039,36 @@
 msgid "Greater than or equal to"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:149
+#: ../controls/ProjectPropertiesPanel.py:152
 msgid "Grid Resolution:"
 msgstr ""
 
-#: ../runtime/NevowServer.py:192
+#: ../runtime/NevowServer.py:313
 msgid "HTTP interface port :"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:135
+#: ../controls/ProjectPropertiesPanel.py:138
 msgid "Height:"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:89
+#: ../editors/FileManagementPanel.py:88
 msgid "Home Directory:"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:165
+#: ../controls/ProjectPropertiesPanel.py:168
 msgid "Horizontal:"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:47
+#: ../dialogs/DurationEditorDialog.py:58
 msgid "Hours:"
 msgstr ""
 
+#: ../runtime/WampClient.py:404
+msgid "ID"
+msgstr ""
+
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44
+#: ../dialogs/PouDialog.py:128
 msgid "IL"
 msgstr ""
 
@@ -1819,52 +2076,64 @@
 msgid "IP"
 msgstr ""
 
-#: ../Beremiz_service.py:318 ../Beremiz_service.py:320
+#: ../Beremiz_service.py:331 ../Beremiz_service.py:333
 msgid "IP is not valid!"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:1387
+msgid "Import ESI file"
+msgstr ""
+
 #: ../svgui/svgui.py:50 ../svgui/svgui.py:51
 msgid "Import SVG"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
-#: ../controls/VariablePanel.py:89
+#: ../etherlab/ConfigEditor.py:1352
+msgid "Import file to ESI files database"
+msgstr ""
+
+#: ../dialogs/FBDVariableDialog.py:64 ../editors/Viewer.py:1664
+#: ../controls/VariablePanel.py:86
 msgid "InOut"
 msgstr ""
 
-#: ../PLCGenerator.py:1040
+#: ../PLCGenerator.py:1089
 #, python-brace-format
 msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
 msgstr ""
 
-#: ../editors/Viewer.py:473
+#: ../editors/Viewer.py:484
 msgid "Inactive"
 msgstr ""
 
-#: ../controls/VariablePanel.py:300
+#: ../controls/VariablePanel.py:299
 #, python-brace-format
 msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
 msgstr ""
 
-#: ../controls/VariablePanel.py:306
+#: ../controls/VariablePanel.py:305
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr ""
 
-#: ../controls/VariablePanel.py:310
+#: ../controls/VariablePanel.py:309
 #, python-brace-format
 msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:48 ../etherlab/ConfigEditor.py:465
+msgid "Index"
+msgstr ""
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Indicator"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:734
+#: ../editors/CodeFileEditor.py:753
 msgid "Initial"
 msgstr ""
 
-#: ../editors/Viewer.py:650
+#: ../editors/Viewer.py:653
 msgid "Initial Step"
 msgstr ""
 
@@ -1877,6 +2146,14 @@
 msgid "Initial Value:"
 msgstr ""
 
+#: ../etherlab/EthercatCIA402Slave.py:119
+msgid "Initiate Drag'n drop of Axis ref located variable"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:126
+msgid "Initiate Drag'n drop of Network position located variable"
+msgstr ""
+
 #: ../svgui/svgui.py:56
 msgid "Inkscape"
 msgstr ""
@@ -1885,11 +2162,11 @@
 msgid "Inline"
 msgstr ""
 
-#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
+#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:63
 #: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
-#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../editors/Viewer.py:1662 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:86
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Input"
 msgstr ""
 
@@ -1906,11 +2183,11 @@
 msgid "Instance with id %d doesn't exist!"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:279
+#: ../editors/ResourceEditor.py:277
 msgid "Instances:"
 msgstr ""
 
-#: ../controls/VariablePanel.py:88
+#: ../controls/VariablePanel.py:85
 msgid "Interface"
 msgstr ""
 
@@ -1922,7 +2199,7 @@
 msgid "Interval"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:304
+#: ../controls/ProjectPropertiesPanel.py:306
 msgid ""
 "Invalid URL!\n"
 "Please enter correct URL address."
@@ -1942,14 +2219,26 @@
 msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
 msgstr ""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:129
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr ""
 
-#: ../controls/VariablePanel.py:279 ../controls/VariablePanel.py:282
+#: ../etherlab/ConfigEditor.py:418 ../etherlab/ConfigEditor.py:421
+#: ../etherlab/ConfigEditor.py:452
+#, python-format
+msgid "Invalid value \"%s\" for process variable"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:480 ../etherlab/ConfigEditor.py:483
+#: ../etherlab/ConfigEditor.py:504
+#, python-format
+msgid "Invalid value \"%s\" for startup command"
+msgstr ""
+
+#: ../controls/VariablePanel.py:278 ../controls/VariablePanel.py:281
 #, python-format
 msgid "Invalid value \"%s\" for variable grid element"
 msgstr ""
@@ -1964,7 +2253,12 @@
 msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:124
+#: ../etherlab/CommonEtherCATFunction.py:31
+#, python-format
+msgid "Invalid value for HexDecValue \"%s\""
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:125
 msgid ""
 "Invalid value!\n"
 "You must fill a numeric value."
@@ -1974,12 +2268,12 @@
 msgid "Is connection secure?"
 msgstr ""
 
-#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
+#: ../editors/Viewer.py:658 ../editors/Viewer.py:2427
 msgid "Jump"
 msgstr ""
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "LD"
 msgstr ""
 
@@ -1988,33 +2282,33 @@
 msgid "Ladder element with id %d is on more than one rung."
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
-#: ../dialogs/PouDialog.py:113
+#: ../dialogs/PouTransitionDialog.py:92 ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:148
 msgid "Language"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:206
+#: ../controls/ProjectPropertiesPanel.py:208
 msgid "Language (optional):"
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
-#: ../dialogs/PouDialog.py:81
+#: ../dialogs/PouTransitionDialog.py:66 ../dialogs/PouActionDialog.py:63
+#: ../dialogs/PouDialog.py:79
 msgid "Language:"
 msgstr ""
 
-#: ../ProjectController.py:1779
+#: ../ProjectController.py:1861
 msgid "Latest build already matches current target. Transfering anyway...\n"
 msgstr ""
 
-#: ../Beremiz_service.py:281
+#: ../Beremiz_service.py:294
 msgid "Launch WX GUI inspector"
 msgstr ""
 
-#: ../Beremiz_service.py:280
+#: ../Beremiz_service.py:293
 msgid "Launch a live Python shell"
 msgstr ""
 
-#: ../editors/Viewer.py:580
+#: ../editors/Viewer.py:583
 msgid "Left"
 msgstr ""
 
@@ -2034,7 +2328,7 @@
 msgid "Less than or equal to"
 msgstr ""
 
-#: ../IDEFrame.py:652
+#: ../IDEFrame.py:658
 msgid "Library"
 msgstr ""
 
@@ -2050,7 +2344,7 @@
 msgid "Linking :\n"
 msgstr ""
 
-#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
+#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:87
 msgid "Local"
 msgstr ""
 
@@ -2058,7 +2352,7 @@
 msgid "Local entries"
 msgstr ""
 
-#: ../ProjectController.py:1685
+#: ../ProjectController.py:1767
 msgid "Local service discovery failed!\n"
 msgstr ""
 
@@ -2066,28 +2360,44 @@
 msgid "Location"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:79
+#: ../dialogs/BrowseLocationsDialog.py:78
 msgid "Locations available:"
 msgstr ""
 
+#: ../runtime/NevowServer.py:175
+msgid "Log message level"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:25
 msgid "Logarithm to base 10"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:102
+#: ../connectors/PYRO/__init__.py:103
 #, python-format
 msgid "MDNS resolution failure for '%s'\n"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:67
+msgid "Manufacturer Specific"
+msgstr ""
+
 #: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
 msgid "Map Variable"
 msgstr ""
 
-#: ../features.py:31
+#: ../features.py:19
+msgid "Map located variables over Bacnet"
+msgstr ""
+
+#: ../features.py:18
 msgid "Map located variables over CANopen"
 msgstr ""
 
-#: ../features.py:32
+#: ../features.py:20
+msgid "Map located variables over EtherCAT"
+msgstr ""
+
+#: ../features.py:21
 msgid "Map located variables over Modbus"
 msgstr ""
 
@@ -2095,11 +2405,25 @@
 msgid "Master"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:613
+msgid "Master State"
+msgstr ""
+
 #: ../ConfigTreeNode.py:544
 #, python-brace-format
 msgid "Max count ({a1}) reached for this confnode of type {a2} "
 msgstr ""
 
+#: ../etherlab/etherlab.py:173
+msgid "Max entries by PDO"
+msgstr ""
+
+#: ../etherlab/etherlab.py:176
+msgid ""
+"Maximal number of entries mapped in a PDO\n"
+"including empty entries used for PDO alignment"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:71
 msgid "Maximum"
 msgstr ""
@@ -2110,26 +2434,34 @@
 
 #: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
 #: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Memory"
 msgstr ""
 
-#: ../IDEFrame.py:617
+#: ../IDEFrame.py:623
 msgid "Menu ToolBar"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:51
+#: ../runtime/NevowServer.py:176
+msgid "Message text"
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:62
 msgid "Microseconds:"
 msgstr ""
 
-#: ../editors/Viewer.py:585
+#: ../editors/Viewer.py:588
 msgid "Middle"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:50
+#: ../dialogs/DurationEditorDialog.py:61
 msgid "Milliseconds:"
 msgstr ""
 
+#: ../etherlab/etherlab.py:167
+msgid "Minimal size in bits between 2 pdo entries"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:72
 msgid "Minimum"
 msgstr ""
@@ -2138,15 +2470,15 @@
 msgid "Minimum:"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:48
+#: ../dialogs/DurationEditorDialog.py:59
 msgid "Minutes:"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:231
+#: ../etherlab/etherlab.py:238 ../controls/ProjectPropertiesPanel.py:233
 msgid "Miscellaneous"
 msgstr ""
 
-#: ../features.py:32
+#: ../features.py:21
 msgid "Modbus support"
 msgstr ""
 
@@ -2154,7 +2486,20 @@
 msgid "Modifier:"
 msgstr ""
 
-#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
+#: ../etherlab/ConfigEditor.py:1313
+#, python-format
+msgid "Module %s must be an integer!"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1376
+msgid "Modules Library"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1145
+msgid "Modules library:"
+msgstr ""
+
+#: ../PLCGenerator.py:795 ../PLCGenerator.py:1318
 #, python-brace-format
 msgid ""
 "More than one connector found corresponding to \"{a1}\" continuation in "
@@ -2181,23 +2526,31 @@
 msgid "Move element up"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:286
+#: ../editors/ResourceEditor.py:284
 msgid "Move instance down"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:285
+#: ../editors/ResourceEditor.py:283
 msgid "Move instance up"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:255
+#: ../etherlab/ConfigEditor.py:655
+msgid "Move process variable down"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:654
+msgid "Move process variable up"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:253
 msgid "Move task down"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:254
+#: ../editors/ResourceEditor.py:252
 msgid "Move task up"
 msgstr ""
 
-#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
+#: ../IDEFrame.py:253 ../IDEFrame.py:268 ../IDEFrame.py:298 ../IDEFrame.py:339
 msgid "Move the view"
 msgstr ""
 
@@ -2205,14 +2558,28 @@
 msgid "Move up"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
+#: ../bacnet/BacnetSlaveEditor.py:814 ../editors/CodeFileEditor.py:675
+#: ../controls/VariablePanel.py:486
 msgid "Move variable down"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
+#: ../bacnet/BacnetSlaveEditor.py:813 ../editors/CodeFileEditor.py:674
+#: ../controls/VariablePanel.py:485
 msgid "Move variable up"
 msgstr ""
 
+#: ../bacnet/BacnetSlaveEditor.py:941
+msgid "Multi-State Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:940
+msgid "Multi-State Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:939
+msgid "Multi-State Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:74
 msgid "Multiplexer (select 1 of N)"
 msgstr ""
@@ -2221,7 +2588,7 @@
 msgid "Multiplication"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:87
+#: ../editors/FileManagementPanel.py:86
 msgid "My Computer:"
 msgstr ""
 
@@ -2229,13 +2596,15 @@
 msgid "NAME"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
-#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
+#: ../etherlab/EtherCATManagementEditor.py:37 ../etherlab/ConfigEditor.py:48
+#: ../etherlab/ConfigEditor.py:343 ../etherlab/ConfigEditor.py:1167
+#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:94
+#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:751
 #: ../controls/VariablePanel.py:59
 msgid "Name"
 msgstr ""
 
-#: ../Beremiz_service.py:342
+#: ../Beremiz_service.py:355
 msgid "Name must not be null!"
 msgstr ""
 
@@ -2248,15 +2617,19 @@
 msgid "Natural logarithm"
 msgstr ""
 
-#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
+#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:557
 msgid "Negated"
 msgstr ""
 
-#: ../Beremiz_service.py:610
+#: ../etherlab/ConfigEditor.py:612
+msgid "Network"
+msgstr ""
+
+#: ../Beremiz_service.py:620
 msgid "Nevow Web service failed. "
 msgstr ""
 
-#: ../Beremiz_service.py:580
+#: ../Beremiz_service.py:596
 msgid "Nevow/Athena import failed :"
 msgstr ""
 
@@ -2269,20 +2642,29 @@
 msgid "New item"
 msgstr ""
 
-#: ../editors/Viewer.py:553
+#: ../editors/Viewer.py:556
 msgid "No Modifier"
 msgstr ""
 
-#: ../ProjectController.py:1808
+#: ../ProjectController.py:1891
 msgid "No PLC to transfer (did build succeed ?)\n"
 msgstr ""
 
-#: ../PLCGenerator.py:1678
+#: ../etherlab/EthercatCFileGenerator.py:504
+#, python-format
+msgid "No Sync manager defined for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1727
 #, python-format
 msgid "No body defined in \"%s\" POU"
 msgstr ""
 
-#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
+#: ../etherlab/CommonEtherCATFunction.py:1581
+msgid "No connected slaves"
+msgstr ""
+
+#: ../PLCGenerator.py:816 ../PLCGenerator.py:1330
 #, python-brace-format
 msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
 msgstr ""
@@ -2298,7 +2680,17 @@
 msgid "No informations found for \"%s\" block"
 msgstr ""
 
-#: ../PLCGenerator.py:1232
+#: ../etherlab/EthercatCFileGenerator.py:224
+#, python-format
+msgid "No informations found for device %s!"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:515
+#, python-format
+msgid "No more free PDO index available for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1281
 #, python-brace-format
 msgid ""
 "No output {a1} variable found in block {a2} in POU {a3}. Connection must be "
@@ -2309,11 +2701,21 @@
 msgid "No search results available."
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:1029
+#, python-format
+msgid "No slave defined at position %d!"
+msgstr ""
+
 #: ../svgui/svgui.py:142
 #, python-format
 msgid "No such SVG file: %s\n"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:1245
+#, python-format
+msgid "No such XML file: %s\n"
+msgstr ""
+
 #: ../canfestival/config_utils.py:682
 #, python-brace-format
 msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
@@ -2324,15 +2726,33 @@
 msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
 msgstr ""
 
+#: ../etherlab/EthercatCFileGenerator.py:438
+#, python-format
+msgid "No sync manager available for %s pdo!"
+msgstr ""
+
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
 msgid "No valid value selected!"
 msgstr ""
 
-#: ../PLCGenerator.py:1676
+#: ../PLCGenerator.py:1725
 #, python-format
 msgid "No variable defined in \"%s\" POU"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:606
+#, python-format
+msgid "Node Position: %d"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:697
+msgid "Node filter:"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:717
+msgid "Nodes variables filter:"
+msgstr ""
+
 #: ../canfestival/config_utils.py:379
 #, python-brace-format
 msgid "Non existing node ID : {a1} (variable {a2})"
@@ -2355,6 +2775,10 @@
 msgid "Not equal to"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:361
+msgid "Now Uploading..."
+msgstr ""
+
 #: ../dialogs/SFCDivergenceDialog.py:91
 msgid "Number of sequences:"
 msgstr ""
@@ -2363,7 +2787,11 @@
 msgid "Numerical"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:736
+#: ../bacnet/BacnetSlaveEditor.py:808
+msgid "Object Properties:"
+msgstr ""
+
+#: ../editors/CodeFileEditor.py:755
 msgid "OnChange"
 msgstr ""
 
@@ -2380,17 +2808,17 @@
 msgid "Open Inkscape"
 msgstr ""
 
-#: ../version.py:86
+#: ../version.py:88
 msgid ""
 "Open Source framework for automation, implemented IEC 61131 IDE with "
 "constantly growing set of extensions and flexible PLC runtime."
 msgstr ""
 
-#: ../ProjectController.py:1879
+#: ../ProjectController.py:1962
 msgid "Open a file explorer to manage project files"
 msgstr ""
 
-#: ../wxglade_hmi/wxglade_hmi.py:161
+#: ../wxglade_hmi/wxglade_hmi.py:176
 msgid "Open wxGlade"
 msgstr ""
 
@@ -2398,11 +2826,11 @@
 msgid "Option"
 msgstr ""
 
-#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
+#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:756
 msgid "Options"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:109
+#: ../controls/ProjectPropertiesPanel.py:111
 msgid "Organization (optional):"
 msgstr ""
 
@@ -2410,14 +2838,20 @@
 msgid "Other Profile"
 msgstr ""
 
-#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:42
+#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:65
 #: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:333
-#: ../editors/Viewer.py:1661 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../editors/Viewer.py:1663 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:86
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Output"
 msgstr ""
 
+#: ../etherlab/EthercatCFileGenerator.py:170
+#, python-brace-format
+msgid ""
+"Output variables can't be defined with different locations ({a1} and {a2})"
+msgstr ""
+
 #: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:91
 msgid "PDO Receive"
 msgstr ""
@@ -2426,26 +2860,39 @@
 msgid "PDO Transmit"
 msgstr ""
 
+#: ../etherlab/etherlab.py:164
+msgid "PDO alignment"
+msgstr ""
+
 #: ../targets/toolchain_gcc.py:174
 msgid "PLC :\n"
 msgstr ""
 
-#: ../BeremizIDE.py:383
+#: ../BeremizIDE.py:379
 msgid "PLC Log"
 msgstr ""
 
-#: ../ProjectController.py:1082
+#: ../ProjectController.py:1129
 msgid "PLC code generation failed !\n"
 msgstr ""
 
-#: ../Beremiz_service.py:305
+#: ../etherlab/EtherCATManagementEditor.py:250
+msgid "PLC is Not Started"
+msgstr ""
+
+#: ../Beremiz_service.py:318
 msgid "PLC is empty or already started."
 msgstr ""
 
-#: ../Beremiz_service.py:312
+#: ../Beremiz_service.py:325
 msgid "PLC is not started."
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:2160
+#: ../etherlab/CommonEtherCATFunction.py:1589
+msgid "PLC not connected!"
+msgstr ""
+
 #: ../PLCOpenEditor.py:180 ../PLCOpenEditor.py:293
 #, python-brace-format
 msgid ""
@@ -2472,28 +2919,28 @@
 msgid "PORT"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:109
+#: ../dialogs/PouDialog.py:144
 msgid "POU Name"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:66
+#: ../dialogs/PouDialog.py:64
 msgid "POU Name:"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:111
+#: ../dialogs/PouDialog.py:146
 msgid "POU Type"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:73
+#: ../dialogs/PouDialog.py:71
 msgid "POU Type:"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:52
+#: ../connectors/PYRO/__init__.py:53
 #, python-format
 msgid "PYRO connecting to URI : %s\n"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:68
+#: ../connectors/PYRO/__init__.py:69
 #, python-format
 msgid "PYRO using certificates in '%s' \n"
 msgstr ""
@@ -2502,11 +2949,11 @@
 msgid "Page Setup"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:124
+#: ../controls/ProjectPropertiesPanel.py:127
 msgid "Page Size (optional):"
 msgstr ""
 
-#: ../IDEFrame.py:2640
+#: ../IDEFrame.py:2660
 #, python-format
 msgid "Page: %d"
 msgstr ""
@@ -2515,11 +2962,11 @@
 msgid "Parent instance"
 msgstr ""
 
-#: ../editors/Viewer.py:696 ../IDEFrame.py:374 ../IDEFrame.py:428
+#: ../editors/Viewer.py:699 ../IDEFrame.py:377 ../IDEFrame.py:429
 msgid "Paste"
 msgstr ""
 
-#: ../IDEFrame.py:1899
+#: ../IDEFrame.py:1916
 msgid "Paste POU"
 msgstr ""
 
@@ -2531,7 +2978,11 @@
 msgid "Pin number:"
 msgstr ""
 
-#: ../editors/Viewer.py:2792 ../editors/Viewer.py:3060
+#: ../runtime/NevowServer.py:163
+msgid "Platform"
+msgstr ""
+
+#: ../editors/Viewer.py:2791 ../editors/Viewer.py:3059
 #: ../editors/SFCViewer.py:785
 msgid "Please choose a target"
 msgstr ""
@@ -2540,7 +2991,7 @@
 msgid "Please enter a block name"
 msgstr ""
 
-#: ../editors/Viewer.py:2661 ../editors/Viewer.py:3103
+#: ../dialogs/CommentEditDialog.py:52
 msgid "Please enter comment text"
 msgstr ""
 
@@ -2549,7 +3000,8 @@
 msgid "Please enter step name"
 msgstr ""
 
-#: ../dialogs/PouNameDialog.py:37 ../Beremiz_service.py:209
+#: ../dialogs/SFCStepNameDialog.py:37 ../dialogs/PouNameDialog.py:37
+#: ../Beremiz_service.py:222
 msgid "Please enter text"
 msgstr ""
 
@@ -2558,15 +3010,19 @@
 msgid "Please enter value for a \"%s\" variable:"
 msgstr ""
 
-#: ../Beremiz_service.py:327
+#: ../Beremiz_service.py:340
 msgid "Port number must be 0 <= port <= 65535!"
 msgstr ""
 
-#: ../Beremiz_service.py:327
+#: ../Beremiz_service.py:340
 msgid "Port number must be an integer!"
 msgstr ""
 
-#: ../editors/Viewer.py:633 ../editors/Viewer.py:2449
+#: ../etherlab/ConfigEditor.py:47 ../etherlab/ConfigEditor.py:465
+msgid "Position"
+msgstr ""
+
+#: ../editors/Viewer.py:636 ../editors/Viewer.py:2451
 msgid "Power Rail"
 msgstr ""
 
@@ -2587,7 +3043,7 @@
 msgid "Print"
 msgstr ""
 
-#: ../IDEFrame.py:1110
+#: ../IDEFrame.py:1123
 msgid "Print preview"
 msgstr ""
 
@@ -2599,33 +3055,37 @@
 msgid "Priority:"
 msgstr ""
 
-#: ../runtime/PLCObject.py:518
+#: ../runtime/PLCObject.py:523
 #, python-format
 msgid "Problem starting PLC : error %d"
 msgstr ""
 
-#: ../dialogs/ProjectDialog.py:63
+#: ../etherlab/ConfigEditor.py:647
+msgid "Process variables mapped between nodes:"
+msgstr ""
+
+#: ../dialogs/ProjectDialog.py:61
 msgid "Product Name"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:90
+#: ../controls/ProjectPropertiesPanel.py:91
 msgid "Product Name (required):"
 msgstr ""
 
+#: ../controls/ProjectPropertiesPanel.py:93
+msgid "Product Release (optional):"
+msgstr ""
+
+#: ../dialogs/ProjectDialog.py:62
+msgid "Product Version"
+msgstr ""
+
 #: ../controls/ProjectPropertiesPanel.py:92
-msgid "Product Release (optional):"
-msgstr ""
-
-#: ../dialogs/ProjectDialog.py:64
-msgid "Product Version"
-msgstr ""
-
-#: ../controls/ProjectPropertiesPanel.py:91
 msgid "Product Version (required):"
 msgstr ""
 
-#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1778
-#: ../IDEFrame.py:1975
+#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1795
+#: ../IDEFrame.py:1992
 msgid "Program"
 msgstr ""
 
@@ -2641,7 +3101,7 @@
 msgid "Programs can't be used by other POUs!"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:94 ../IDEFrame.py:601
+#: ../controls/ProjectPropertiesPanel.py:95 ../IDEFrame.py:607
 msgid "Project"
 msgstr ""
 
@@ -2650,19 +3110,19 @@
 msgid "Project '%s':"
 msgstr ""
 
-#: ../ProjectController.py:1878
+#: ../ProjectController.py:1961
 msgid "Project Files"
 msgstr ""
 
-#: ../dialogs/ProjectDialog.py:62
+#: ../dialogs/ProjectDialog.py:60
 msgid "Project Name"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:88
+#: ../controls/ProjectPropertiesPanel.py:89
 msgid "Project Name (required):"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:89
+#: ../controls/ProjectPropertiesPanel.py:90
 msgid "Project Version (optional):"
 msgstr ""
 
@@ -2689,16 +3149,16 @@
 msgid "Properties"
 msgstr ""
 
-#: ../Beremiz_service.py:427
+#: ../Beremiz_service.py:440
 msgid "Publishing service on local network"
 msgstr ""
 
-#: ../connectors/PYRO/__init__.py:126
+#: ../connectors/PYRO/__init__.py:127
 #, python-format
 msgid "Pyro exception: %s\n"
 msgstr ""
 
-#: ../Beremiz_service.py:420
+#: ../Beremiz_service.py:433
 msgid "Pyro port :"
 msgstr ""
 
@@ -2706,7 +3166,7 @@
 msgid "Python code"
 msgstr ""
 
-#: ../features.py:34
+#: ../features.py:23
 msgid "Python file"
 msgstr ""
 
@@ -2714,19 +3174,23 @@
 msgid "Qualifier"
 msgstr ""
 
-#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:283
+#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:296
 msgid "Quit"
 msgstr ""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:227
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:224
 msgid "Range:"
 msgstr ""
 
-#: ../ProjectController.py:1872
+#: ../ProjectController.py:1955
 msgid "Raw IEC code"
 msgstr ""
 
-#: ../BeremizIDE.py:1083
+#: ../etherlab/ConfigEditor.py:344
+msgid "Read from (nodeid, index, subindex)"
+msgstr ""
+
+#: ../BeremizIDE.py:1080
 #, python-format
 msgid "Really delete node '%s'?"
 msgstr ""
@@ -2735,7 +3199,7 @@
 msgid "Realm:"
 msgstr ""
 
-#: ../IDEFrame.py:367 ../IDEFrame.py:424
+#: ../IDEFrame.py:370 ../IDEFrame.py:425
 msgid "Redo"
 msgstr ""
 
@@ -2743,10 +3207,14 @@
 msgid "Reference"
 msgstr ""
 
-#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:434
+#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:436
 msgid "Refresh"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:1965
+msgid "Register Modify Dialog"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:70
 msgid "Regular expression"
 msgstr ""
@@ -2755,7 +3223,7 @@
 msgid "Regular expressions"
 msgstr ""
 
-#: ../editors/Viewer.py:1636
+#: ../editors/Viewer.py:1638
 msgid "Release value"
 msgstr ""
 
@@ -2763,16 +3231,16 @@
 msgid "Remainder (modulo)"
 msgstr ""
 
-#: ../BeremizIDE.py:1084
+#: ../BeremizIDE.py:1081
 #, python-format
 msgid "Remove %s node"
 msgstr ""
 
-#: ../IDEFrame.py:2445
+#: ../IDEFrame.py:2463
 msgid "Remove Datatype"
 msgstr ""
 
-#: ../IDEFrame.py:2450
+#: ../IDEFrame.py:2468
 msgid "Remove Pou"
 msgstr ""
 
@@ -2784,35 +3252,52 @@
 msgid "Remove element"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:66
+#: ../etherlab/ConfigEditor.py:1353
+msgid "Remove file from database"
+msgstr ""
+
+#: ../editors/FileManagementPanel.py:65
 msgid "Remove file from left folder"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:284
+#: ../etherlab/ConfigEditor.py:1389
+msgid "Remove file from library"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:282
 msgid "Remove instance"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:653
+msgid "Remove process variable"
+msgstr ""
+
 #: ../canfestival/NetworkEditor.py:111
 msgid "Remove slave"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:253
+#: ../etherlab/ConfigEditor.py:680
+msgid "Remove startup service variable"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:251
 msgid "Remove task"
 msgstr ""
 
-#: ../editors/CodeFileEditor.py:655 ../controls/VariablePanel.py:482
+#: ../bacnet/BacnetSlaveEditor.py:812 ../editors/CodeFileEditor.py:673
+#: ../controls/VariablePanel.py:484
 msgid "Remove variable"
 msgstr ""
 
-#: ../IDEFrame.py:1979
+#: ../IDEFrame.py:1996
 msgid "Rename"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:187
+#: ../editors/FileManagementPanel.py:186
 msgid "Replace File"
 msgstr ""
 
-#: ../editors/Viewer.py:598
+#: ../editors/Viewer.py:601
 msgid "Replace Wire by connections"
 msgstr ""
 
@@ -2824,11 +3309,11 @@
 msgid "Reset"
 msgstr ""
 
-#: ../editors/Viewer.py:681
+#: ../editors/Viewer.py:684
 msgid "Reset Execution Order"
 msgstr ""
 
-#: ../IDEFrame.py:453
+#: ../IDEFrame.py:459
 msgid "Reset Perspective"
 msgstr ""
 
@@ -2836,7 +3321,7 @@
 msgid "Reset search result"
 msgstr ""
 
-#: ../BeremizIDE.py:1015 ../plcopen/types_enums.py:77
+#: ../BeremizIDE.py:1012 ../plcopen/types_enums.py:77
 msgid "Resources"
 msgstr ""
 
@@ -2844,11 +3329,11 @@
 msgid "Retain"
 msgstr ""
 
-#: ../controls/VariablePanel.py:455
+#: ../controls/VariablePanel.py:457
 msgid "Return Type:"
 msgstr ""
 
-#: ../editors/Viewer.py:582
+#: ../editors/Viewer.py:585
 msgid "Right"
 msgstr ""
 
@@ -2856,7 +3341,7 @@
 msgid "Right PowerRail"
 msgstr ""
 
-#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:555
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:558
 msgid "Rising Edge"
 msgstr ""
 
@@ -2872,15 +3357,15 @@
 msgid "Rounding up/down"
 msgstr ""
 
-#: ../ProjectController.py:1828
+#: ../ProjectController.py:1911
 msgid "Run"
 msgstr ""
 
-#: ../ProjectController.py:1127
+#: ../ProjectController.py:1175
 msgid "Runtime IO extensions C code generation failed !\n"
 msgstr ""
 
-#: ../ProjectController.py:1136
+#: ../ProjectController.py:1186
 msgid "Runtime library extensions C code generation failed !\n"
 msgstr ""
 
@@ -2892,11 +3377,11 @@
 msgid "SDO Server"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "SFC"
 msgstr ""
 
-#: ../PLCGenerator.py:1433
+#: ../PLCGenerator.py:1482
 #, python-brace-format
 msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
 msgstr ""
@@ -2907,7 +3392,7 @@
 msgstr ""
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44
+#: ../dialogs/PouDialog.py:128
 msgid "ST"
 msgstr ""
 
@@ -2919,7 +3404,7 @@
 msgid "SVG files (*.svg)|*.svg|All files|*.*"
 msgstr ""
 
-#: ../features.py:36
+#: ../features.py:25
 msgid "SVGUI"
 msgstr ""
 
@@ -2936,38 +3421,48 @@
 msgid "Save as"
 msgstr ""
 
-#: ../ProjectController.py:530
+#: ../etherlab/EtherCATManagementEditor.py:941
+#: ../etherlab/EtherCATManagementEditor.py:1289
+msgid "Save as..."
+msgstr ""
+
+#: ../ProjectController.py:546
 msgid "Save path is the same as path of a project! \n"
 msgstr ""
 
+#: ../etherlab/EthercatMaster.py:455 ../etherlab/EthercatMaster.py:764
+#: ../etherlab/EthercatMaster.py:765
+msgid "Scan Network"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:73
 msgid "Scope"
 msgstr ""
 
-#: ../IDEFrame.py:644
+#: ../IDEFrame.py:650
 msgid "Search"
 msgstr ""
 
-#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:384
-#: ../IDEFrame.py:430
+#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:387
+#: ../IDEFrame.py:431
 msgid "Search in Project"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:49
+#: ../dialogs/DurationEditorDialog.py:60
 msgid "Seconds:"
 msgstr ""
 
-#: ../IDEFrame.py:390
+#: ../IDEFrame.py:393
 msgid "Select All"
 msgstr ""
 
 #: ../editors/Viewer.py:331 ../editors/TextViewer.py:305
-#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:315
-#: ../controls/VariablePanel.py:378
+#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:314
+#: ../controls/VariablePanel.py:377
 msgid "Select a variable class:"
 msgstr ""
 
-#: ../ProjectController.py:1293
+#: ../ProjectController.py:1354
 msgid "Select an editor:"
 msgstr ""
 
@@ -2975,11 +3470,11 @@
 msgid "Select an instance"
 msgstr ""
 
-#: ../IDEFrame.py:628
+#: ../IDEFrame.py:634
 msgid "Select an object"
 msgstr ""
 
-#: ../ProjectController.py:537
+#: ../ProjectController.py:555
 msgid "Selected directory already contains another project. Overwrite? \n"
 msgstr ""
 
@@ -2995,6 +3490,14 @@
 msgid "Selection Divergence"
 msgstr ""
 
+#: ../runtime/NevowServer.py:182
+msgid "Send"
+msgstr ""
+
+#: ../runtime/NevowServer.py:181
+msgid "Send a message to the log"
+msgstr ""
+
 #: ../dialogs/DiscoveryDialog.py:135
 msgid "Service Discovery"
 msgstr ""
@@ -3003,7 +3506,7 @@
 msgid "Services available:"
 msgstr ""
 
-#: ../dialogs/LDElementDialog.py:79
+#: ../dialogs/LDElementDialog.py:79 ../runtime/WampClient.py:434
 msgid "Set"
 msgstr ""
 
@@ -3015,7 +3518,7 @@
 msgid "Shift right"
 msgstr ""
 
-#: ../ProjectController.py:1863
+#: ../ProjectController.py:1946
 msgid "Show IEC code generated by PLCGenerator"
 msgstr ""
 
@@ -3027,7 +3530,7 @@
 msgid "Show Master generated by config_utils"
 msgstr ""
 
-#: ../ProjectController.py:1862
+#: ../ProjectController.py:1945
 msgid "Show code"
 msgstr ""
 
@@ -3047,6 +3550,14 @@
 msgid "Single"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:361
+msgid "Slave SDO Monitoring"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:135
+msgid "Slave entries"
+msgstr ""
+
 #: ../targets/toolchain_makefile.py:130
 msgid "Source didn't change, no build.\n"
 msgstr ""
@@ -3066,44 +3577,56 @@
 msgid "Standard function blocks"
 msgstr ""
 
-#: ../ProjectController.py:1829 ../Beremiz_service.py:271
+#: ../etherlab/ConfigEditor.py:68
+msgid "Standardized Device Profile"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Start Address"
+msgstr ""
+
+#: ../ProjectController.py:1912 ../Beremiz_service.py:284
 msgid "Start PLC"
 msgstr ""
 
-#: ../ProjectController.py:1074
+#: ../ProjectController.py:1121
 #, python-format
 msgid "Start build in %s\n"
 msgstr ""
 
-#: ../ProjectController.py:1397
+#: ../runtime/PlcStatus.py:12
 msgid "Started"
 msgstr ""
 
-#: ../ProjectController.py:1633
+#: ../ProjectController.py:1714
 msgid "Starting PLC\n"
 msgstr ""
 
-#: ../BeremizIDE.py:393
+#: ../etherlab/ConfigEditor.py:674
+msgid "Startup service variables assignments:"
+msgstr ""
+
+#: ../BeremizIDE.py:389
 msgid "Status ToolBar"
 msgstr ""
 
-#: ../editors/Viewer.py:651 ../editors/Viewer.py:2424
+#: ../editors/Viewer.py:654 ../editors/Viewer.py:2426
 msgid "Step"
 msgstr ""
 
-#: ../ProjectController.py:1835
+#: ../ProjectController.py:1918
 msgid "Stop"
 msgstr ""
 
-#: ../Beremiz_service.py:272
+#: ../Beremiz_service.py:285
 msgid "Stop PLC"
 msgstr ""
 
-#: ../ProjectController.py:1836
+#: ../ProjectController.py:1919
 msgid "Stop Running PLC"
 msgstr ""
 
-#: ../ProjectController.py:1398
+#: ../runtime/PlcStatus.py:13
 msgid "Stopped"
 msgstr ""
 
@@ -3111,6 +3634,14 @@
 msgid "Structure"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:48
+msgid "SubIndex"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:465
+msgid "Subindex"
+msgstr ""
+
 #: ../editors/DataTypeEditor.py:60
 msgid "Subrange"
 msgstr ""
@@ -3119,11 +3650,11 @@
 msgid "Subtraction"
 msgstr ""
 
-#: ../ProjectController.py:1113
+#: ../ProjectController.py:1160
 msgid "Successfully built.\n"
 msgstr ""
 
-#: ../IDEFrame.py:449
+#: ../IDEFrame.py:451
 msgid "Switch perspective"
 msgstr ""
 
@@ -3139,19 +3670,19 @@
 msgid "Tangent"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:97
+#: ../editors/ResourceEditor.py:94
 msgid "Task"
 msgstr ""
 
-#: ../editors/ResourceEditor.py:248
+#: ../editors/ResourceEditor.py:246
 msgid "Tasks:"
 msgstr ""
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "Temp"
 msgstr ""
 
-#: ../version.py:35
+#: ../version.py:37
 msgid ""
 "The best place to ask questions about Beremiz/PLCOpenEditor\n"
 "is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
@@ -3163,29 +3694,40 @@
 "https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
 msgstr ""
 
-#: ../editors/FileManagementPanel.py:186
+#: ../etherlab/EthercatMaster.py:454
+msgid ""
+"The current network configuration will be deleted.\n"
+"Do you want to continue?"
+msgstr ""
+
+#: ../editors/FileManagementPanel.py:185
 #, python-format
 msgid ""
 "The file '%s' already exist.\n"
 "Do you want to replace it?"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:928
+#: ../etherlab/EtherCATManagementEditor.py:1320
+msgid "The file does not exist!"
+msgstr ""
+
 #: ../editors/LDViewer.py:893
 msgid "The group of block must be coherent!"
 msgstr ""
 
-#: ../BeremizIDE.py:573 ../IDEFrame.py:1046
+#: ../BeremizIDE.py:569 ../IDEFrame.py:1059
 msgid "There are changes, do you want to save?"
 msgstr ""
 
-#: ../IDEFrame.py:1691 ../IDEFrame.py:1710
+#: ../IDEFrame.py:1708 ../IDEFrame.py:1727
 #, python-format
 msgid ""
 "There is a POU named \"%s\". This could cause a conflict. Do you wish to "
 "continue?"
 msgstr ""
 
-#: ../IDEFrame.py:1133
+#: ../IDEFrame.py:1146
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -3195,7 +3737,7 @@
 msgid "This option isn't available yet!"
 msgstr ""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:567
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:546
 #, python-format
 msgid "Tick: %d"
 msgstr ""
@@ -3233,56 +3775,60 @@
 msgid "Time-of-day subtraction"
 msgstr ""
 
+#: ../IDEFrame.py:432
+msgid "Toggle fullscreen mode"
+msgstr ""
+
 #: ../dialogs/ForceVariableDialog.py:188
 msgid "Toggle value"
 msgstr ""
 
-#: ../editors/Viewer.py:584
+#: ../editors/Viewer.py:587
 msgid "Top"
 msgstr ""
 
-#: ../ProjectController.py:1848
+#: ../ProjectController.py:1931
 msgid "Transfer"
 msgstr ""
 
-#: ../ProjectController.py:1849
+#: ../ProjectController.py:1932
 msgid "Transfer PLC"
 msgstr ""
 
-#: ../ProjectController.py:1802
+#: ../ProjectController.py:1884
 msgid "Transfer completed successfully.\n"
 msgstr ""
 
-#: ../ProjectController.py:1805
+#: ../ProjectController.py:1887
 msgid "Transfer failed\n"
 msgstr ""
 
-#: ../editors/Viewer.py:652 ../editors/Viewer.py:2426
-#: ../editors/Viewer.py:2453
+#: ../editors/Viewer.py:655 ../editors/Viewer.py:2428
+#: ../editors/Viewer.py:2455
 msgid "Transition"
 msgstr ""
 
-#: ../PLCGenerator.py:1564
+#: ../PLCGenerator.py:1613
 #, python-format
 msgid ""
 "Transition \"%s\" body must contain an output variable or coil referring to "
 "its name"
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:91
+#: ../dialogs/PouTransitionDialog.py:90
 msgid "Transition Name"
 msgstr ""
 
-#: ../dialogs/PouTransitionDialog.py:60
+#: ../dialogs/PouTransitionDialog.py:59
 msgid "Transition Name:"
 msgstr ""
 
-#: ../PLCGenerator.py:1657
+#: ../PLCGenerator.py:1706
 #, python-brace-format
 msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
 msgstr ""
 
-#: ../PLCGenerator.py:1646
+#: ../PLCGenerator.py:1695
 #, python-brace-format
 msgid ""
 "Transition with content \"{a1}\" not connected to a previous step in "
@@ -3306,17 +3852,17 @@
 msgid "Triggering"
 msgstr ""
 
-#: ../Beremiz_service.py:490
+#: ../Beremiz_service.py:503
 msgid "Twisted unavailable."
 msgstr ""
 
-#: ../dialogs/ActionBlockDialog.py:42 ../editors/ResourceEditor.py:97
-#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:733
-#: ../controls/VariablePanel.py:61
+#: ../dialogs/ActionBlockDialog.py:42 ../etherlab/ConfigEditor.py:48
+#: ../editors/ResourceEditor.py:94 ../editors/DataTypeEditor.py:55
+#: ../editors/CodeFileEditor.py:752 ../controls/VariablePanel.py:61
 msgid "Type"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:54
+#: ../dialogs/BrowseLocationsDialog.py:51
 msgid "Type and derivated"
 msgstr ""
 
@@ -3333,16 +3879,25 @@
 msgid "Type infos:"
 msgstr ""
 
-#: ../dialogs/BrowseLocationsDialog.py:55
+#: ../etherlab/EthercatCFileGenerator.py:76
+#, python-format
+msgid "Type of location \"%s\" not yet supported!"
+msgstr ""
+
+#: ../dialogs/BrowseLocationsDialog.py:52
 msgid "Type strict"
 msgstr ""
 
 #: ../dialogs/SFCDivergenceDialog.py:60 ../dialogs/SFCTransitionDialog.py:59
-#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:111
+#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:110
 #: ../dialogs/FBDBlockDialog.py:69 ../dialogs/ConnectionDialog.py:61
 msgid "Type:"
 msgstr ""
 
+#: ../runtime/WampClient.py:129
+msgid "TypeError register option: {}"
+msgstr ""
+
 #: ../connectors/PYRO/dialog.py:39 ../connectors/WAMP/dialog.py:42
 msgid "URI host:"
 msgstr ""
@@ -3365,7 +3920,17 @@
 msgid "Unable to get Xenomai's %s \n"
 msgstr ""
 
-#: ../PLCGenerator.py:974 ../PLCGenerator.py:1252
+#: ../bacnet/bacnet.py:430
+#, python-format
+msgid "Unable to load file \"%s\"!"
+msgstr ""
+
+#: ../bacnet/bacnet.py:420
+#, python-format
+msgid "Unable to save to file \"%s\"!"
+msgstr ""
+
+#: ../PLCGenerator.py:1023 ../PLCGenerator.py:1301
 #, python-brace-format
 msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
 msgstr ""
@@ -3375,20 +3940,25 @@
 msgid "Undefined pou type \"%s\""
 msgstr ""
 
-#: ../IDEFrame.py:365 ../IDEFrame.py:423
+#: ../IDEFrame.py:368 ../IDEFrame.py:424
 msgid "Undo"
 msgstr ""
 
-#: ../ProjectController.py:442
+#: ../ProjectController.py:457
 msgid "Unknown"
 msgstr ""
 
+#: ../etherlab/EthercatCFileGenerator.py:470
+#, python-brace-format
+msgid "Unknown entry index 0x{a1:.4x}, subindex 0x{a2:.2x} for device {a3}"
+msgstr ""
+
 #: ../editors/Viewer.py:437
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr ""
 
-#: ../ProjectController.py:439 ../ProjectController.py:440
+#: ../ProjectController.py:454 ../ProjectController.py:455
 msgid "Unnamed"
 msgstr ""
 
@@ -3397,12 +3967,20 @@
 msgid "Unnamed%d"
 msgstr ""
 
-#: ../controls/VariablePanel.py:308
+#: ../controls/VariablePanel.py:307
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr ""
 
-#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:841
+#: ../etherlab/EtherCATManagementEditor.py:2080
+msgid "Update"
+msgstr ""
+
+#: ../runtime/WampClient.py:380
+msgid "Upload:"
+msgstr ""
+
+#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:852
 msgid "User Data Types"
 msgstr ""
 
@@ -3414,7 +3992,7 @@
 msgid "User-defined POUs"
 msgstr ""
 
-#: ../dialogs/ActionBlockDialog.py:42
+#: ../dialogs/ActionBlockDialog.py:42 ../etherlab/ConfigEditor.py:465
 msgid "Value"
 msgstr ""
 
@@ -3422,24 +4000,29 @@
 msgid "Values:"
 msgstr ""
 
-#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:622
-#: ../editors/Viewer.py:2456
+#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:625
+#: ../editors/Viewer.py:2458
 msgid "Variable"
 msgstr ""
 
 #: ../editors/Viewer.py:352 ../editors/Viewer.py:382 ../editors/Viewer.py:404
 #: ../editors/TextViewer.py:290 ../editors/TextViewer.py:344
-#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:355
+#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:354
 msgid "Variable Drop"
 msgstr ""
 
-#: ../dialogs/FBDVariableDialog.py:68
+#: ../etherlab/ConfigEditor.py:70
+#, python-format
+msgid "Variable Index: #x%4.4X"
+msgstr ""
+
+#: ../dialogs/FBDVariableDialog.py:58
 msgid "Variable Properties"
 msgstr ""
 
 #: ../editors/Viewer.py:332 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:316
-#: ../controls/VariablePanel.py:379
+#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:315
+#: ../controls/VariablePanel.py:378
 msgid "Variable class"
 msgstr ""
 
@@ -3447,24 +4030,28 @@
 msgid "Variable don't belong to this POU!"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:280
+msgid "Variable entries:"
+msgstr ""
+
 #: ../dialogs/LDElementDialog.py:92
 msgid "Variable:"
 msgstr ""
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "Variables"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:166
+#: ../controls/ProjectPropertiesPanel.py:169
 msgid "Vertical:"
 msgstr ""
 
-#: ../runtime/WampClient.py:113
+#: ../runtime/WampClient.py:170
 #, python-format
 msgid "WAMP Client connection failed (%s) .. retrying .."
 msgstr ""
 
-#: ../runtime/WampClient.py:117
+#: ../runtime/WampClient.py:179
 #, python-format
 msgid "WAMP Client connection lost (%s) .. retrying .."
 msgstr ""
@@ -3473,49 +4060,66 @@
 msgid "WAMP ID:"
 msgstr ""
 
-#: ../runtime/WampClient.py:172
+#: ../runtime/WampClient.py:413
+msgid "WAMP Server URL"
+msgstr ""
+
+#: ../runtime/WampClient.py:276
+msgid "WAMP authentication has no secret configured"
+msgstr ""
+
+#: ../runtime/WampClient.py:304
+msgid "WAMP client can not connect to :"
+msgstr ""
+
+#: ../runtime/WampClient.py:301
 msgid "WAMP client connecting to :"
 msgstr ""
 
-#: ../runtime/WampClient.py:148
-msgid "WAMP client connection not established!"
-msgstr ""
-
-#: ../Beremiz_service.py:625
+#: ../Beremiz_service.py:628
 msgid "WAMP client startup failed. "
 msgstr ""
 
-#: ../Beremiz_service.py:621
-msgid "WAMP config is incomplete."
-msgstr ""
-
-#: ../Beremiz_service.py:623
-msgid "WAMP config is missing."
-msgstr ""
-
-#: ../connectors/WAMP/__init__.py:99
+#: ../runtime/WampClient.py:206
+msgid "WAMP configuration error : missing '{}' parameter."
+msgstr ""
+
+#: ../runtime/WampClient.py:192
+msgid "WAMP configuration error:"
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:100
 #, python-format
 msgid "WAMP connecting to URL : %s\n"
 msgstr ""
 
-#: ../connectors/WAMP/__init__.py:140
+#: ../connectors/WAMP/__init__.py:141
 msgid "WAMP connection timeout"
 msgstr ""
 
-#: ../connectors/WAMP/__init__.py:158
+#: ../connectors/WAMP/__init__.py:159
 #, python-format
 msgid "WAMP connection to '%s' failed.\n"
 msgstr ""
 
-#: ../Beremiz_service.py:595
+#: ../runtime/WampClient.py:280
+msgid "WAMP deactivated in configuration"
+msgstr ""
+
+#: ../Beremiz_service.py:605
 msgid "WAMP import failed :"
 msgstr ""
 
-#: ../runtime/WampClient.py:126
-msgid "WAMP load error: "
-msgstr ""
-
-#: ../runtime/WampClient.py:108
+#: ../runtime/WampClient.py:241
+msgid "WAMP secret empty"
+msgstr ""
+
+#: ../runtime/WampClient.py:139
+#, python-format
+msgid "WAMP session joined (%s) by:"
+msgstr ""
+
+#: ../runtime/WampClient.py:146
 msgid "WAMP session left"
 msgstr ""
 
@@ -3523,15 +4127,26 @@
 msgid "WXGLADE GUI"
 msgstr ""
 
-#: ../runtime/WampClient.py:137
-msgid "Wamp secret load error:"
-msgstr ""
-
-#: ../dialogs/PouDialog.py:137 ../editors/LDViewer.py:902
+#: ../runtime/WampClient.py:432
+msgid "Wamp Settings"
+msgstr ""
+
+#: ../dialogs/PouDialog.py:172 ../editors/LDViewer.py:902
 msgid "Warning"
 msgstr ""
 
-#: ../ProjectController.py:726
+#: ../etherlab/EthercatCFileGenerator.py:405
+#: ../etherlab/EthercatCFileGenerator.py:571
+msgid "Warning: "
+msgstr ""
+
+#: ../wxglade_hmi/wxglade_hmi.py:166
+msgid ""
+"Warning: WxGlade HMI has no object with name identical to extension name, "
+"and no python code is provided in start section to create object.\n"
+msgstr ""
+
+#: ../ProjectController.py:756
 msgid "Warnings in ST/IL/SFC code generator :\n"
 msgstr ""
 
@@ -3539,7 +4154,7 @@
 msgid "Whole Project"
 msgstr ""
 
-#: ../controls/ProjectPropertiesPanel.py:134
+#: ../controls/ProjectPropertiesPanel.py:137
 msgid "Width:"
 msgstr ""
 
@@ -3547,27 +4162,63 @@
 msgid "Wrap search"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:345
+msgid "Write to (nodeid, index, subindex)"
+msgstr ""
+
 #: ../dialogs/AboutDialog.py:126
 msgid "Written by"
 msgstr ""
 
-#: ../features.py:35
+#: ../etherlab/EthercatCFileGenerator.py:409
+#: ../etherlab/EthercatCFileGenerator.py:499
+#, python-format
+msgid "Wrong direction for location \"%s\"!"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:400
+#: ../etherlab/EthercatCFileGenerator.py:487
+#, python-format
+msgid "Wrong type for location \"%s\"!"
+msgstr ""
+
+#: ../features.py:24
 msgid "WxGlade GUI"
 msgstr ""
 
+#: ../etherlab/ConfigEditor.py:1236
+msgid "XML files (*.xml)|*.xml|All files|*.*"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:652
+msgid "You can input only hex, dec value"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:1999
+msgid "You can't modify it. This register is read-only or it's not connected."
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:648
+msgid "You cannot SDO download this state"
+msgstr ""
+
 #: ../svgui/svgui.py:150
 msgid ""
 "You don't have write permissions.\n"
 "Open Inkscape anyway ?"
 msgstr ""
 
-#: ../wxglade_hmi/wxglade_hmi.py:160
+#: ../wxglade_hmi/wxglade_hmi.py:175
 msgid ""
 "You don't have write permissions.\n"
 "Open wxGlade anyway ?"
 msgstr ""
 
-#: ../ProjectController.py:390
+#: ../etherlab/EtherCATManagementEditor.py:2002
+msgid "You entered wrong value. You can enter dec or hex value only."
+msgstr ""
+
+#: ../ProjectController.py:403
 msgid ""
 "You must have permission to work on the project\n"
 "Work on a project copy ?"
@@ -3591,11 +4242,21 @@
 msgid "You must type a value!"
 msgstr ""
 
-#: ../IDEFrame.py:440
+#: ../IDEFrame.py:442
 msgid "Zoom"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:158
+#: ../etherlab/EtherCATManagementEditor.py:911
+#: ../etherlab/EtherCATManagementEditor.py:1307
+msgid "bin files (*.bin)|*.bin"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:942
+#: ../etherlab/EtherCATManagementEditor.py:1290
+msgid "bin files (*.bin)|*.bin|All files|*.*"
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:159
 msgid "days"
 msgstr ""
 
@@ -3609,35 +4270,39 @@
 msgid "exited with status {a1} (pid {a2})\n"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "function"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "functionBlock"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:158
+#: ../dialogs/DurationEditorDialog.py:159
 msgid "hours"
 msgstr ""
 
-#: ../ProjectController.py:753
+#: ../ProjectController.py:784
 msgid "matiec installation is not found\n"
 msgstr ""
 
+#: ../dialogs/DurationEditorDialog.py:162
+msgid "microseconds"
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:161
+msgid "milliseconds"
+msgstr ""
+
 #: ../dialogs/DurationEditorDialog.py:160
-msgid "milliseconds"
-msgstr ""
-
-#: ../dialogs/DurationEditorDialog.py:159
 msgid "minutes"
 msgstr ""
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "program"
 msgstr ""
 
-#: ../dialogs/DurationEditorDialog.py:159
+#: ../dialogs/DurationEditorDialog.py:160
 msgid "seconds"
 msgstr ""
 
@@ -3653,6 +4318,10 @@
 msgid "string right of"
 msgstr ""
 
+#: ../etherlab/EtherCATManagementEditor.py:323
+msgid "update"
+msgstr ""
+
 #: ../Beremiz.py:167
 msgid "update info unavailable."
 msgstr ""
@@ -3705,6 +4374,33 @@
 msgid "CAN_Driver"
 msgstr ""
 
+msgid "BACnetServerNode"
+msgstr ""
+
+msgid "Network_Interface"
+msgstr ""
+
+msgid "UDP_Port_Number"
+msgstr ""
+
+msgid "BACnet_Communication_Control_Password"
+msgstr ""
+
+msgid "BACnet_Device_ID"
+msgstr ""
+
+msgid "BACnet_Device_Name"
+msgstr ""
+
+msgid "BACnet_Device_Location"
+msgstr ""
+
+msgid "BACnet_Device_Description"
+msgstr ""
+
+msgid "BACnet_Device_Application_Software_Version"
+msgstr ""
+
 msgid "Generic"
 msgstr ""
 
@@ -3801,6 +4497,24 @@
 msgid "MaxRemoteTCPclients"
 msgstr ""
 
+msgid "CIA402SlaveParams"
+msgstr ""
+
+msgid "Enable%s"
+msgstr ""
+
+msgid "ProcessVariables"
+msgstr ""
+
+msgid "variable"
+msgstr ""
+
+msgid "ReadFrom"
+msgstr ""
+
+msgid "WriteTo"
+msgstr ""
+
 msgid "BaseParams"
 msgstr ""
 
@@ -3831,9 +4545,6 @@
 msgid "variables"
 msgstr ""
 
-msgid "variable"
-msgstr ""
-
 msgid "name"
 msgstr ""
 
--- a/i18n/Beremiz_de_DE.po	Mon Mar 11 09:18:58 2019 +0100
+++ b/i18n/Beremiz_de_DE.po	Mon Mar 11 13:51:07 2019 +0100
@@ -3,14 +3,19 @@
 # This file is distributed under the same license as the Beremiz package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# Hendrik Knackstedt <h.knackstedt@stud.uni-hannover.de>, 2017
+# Andrey Skvortsov <andrej.skvortzov@gmail.com>, 2018
+# Daniel Gangl <danielgangl23@gmail.com>, 2019
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: Beremiz\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-06-15 16:39+0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Hendrik Knackstedt <h.knackstedt@stud.uni-hannover.de>, 2017\n"
+"POT-Creation-Date: 2018-10-03 14:20+0300\n"
+"PO-Revision-Date: 2017-06-13 13:14+0000\n"
+"Last-Translator: Daniel Gangl <danielgangl23@gmail.com>, 2019\n"
 "Language-Team: German (Germany) (https://www.transifex.com/beremiz/teams/75746/de_DE/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -43,37 +48,46 @@
 "\n"
 "Traceback:\n"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   External"
 msgstr "   Extern"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   InOut"
 msgstr "EinAusgang"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Input"
 msgstr "Eingang"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   Local"
 msgstr "   Lokal"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Output"
 msgstr "Ausgang"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "   Temp"
 msgstr "   Temp"
 
-#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
-#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
+#: ../etherlab/etherlab.py:301
+#, python-format
+msgid " (rev. %s)"
+msgstr "(Rev. %s)"
+
+#: ../etherlab/CommonEtherCATFunction.py:1599
+msgid " Warning..."
+msgstr "Warnung..."
+
+#: ../dialogs/PouTransitionDialog.py:100 ../dialogs/ProjectDialog.py:72
+#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:157
 #, python-format
 msgid " and %s"
 msgstr "und %s"
 
-#: ../ProjectController.py:1182
+#: ../ProjectController.py:1236
 msgid " generation failed !\n"
 msgstr " Erstellung fehlgeschlagen !\n"
 
@@ -97,7 +111,7 @@
 msgid "\"%s\" can't use itself!"
 msgstr "\"%s\" kann sich nicht selbst aufrufen!"
 
-#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
+#: ../IDEFrame.py:1705 ../IDEFrame.py:1724
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr "Konfiguration \"%s\" existiert bereits!"
@@ -112,32 +126,32 @@
 msgid "\"%s\" configuration doesn't exist !!!"
 msgstr "Konfiguration \"%s\" existiert nicht !!!"
 
-#: ../IDEFrame.py:1638
+#: ../IDEFrame.py:1655
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr "Datentyp \"%s\" existiert bereits!"
 
-#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
+#: ../dialogs/PouTransitionDialog.py:111 ../dialogs/BlockPreviewDialog.py:220
 #: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
 #: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
 #: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
-#: ../controls/VariablePanel.py:425
+#: ../controls/VariablePanel.py:424
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "\"%s\" Element ist für diesen Baustein bereits vorhanden!"
 
-#: ../BeremizIDE.py:928
+#: ../BeremizIDE.py:925
 #, python-format
 msgid "\"%s\" folder is not a valid Beremiz project\n"
 msgstr "Verzeichnis \"%s\" ist kein korrektes Beremiz-Projekt\n"
 
-#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
+#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:107
 #: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
-#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
-#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
-#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
-#: ../IDEFrame.py:1629
+#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:164
+#: ../etherlab/ConfigEditor.py:973 ../editors/ResourceEditor.py:481
+#: ../editors/ResourceEditor.py:518 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:603 ../editors/CodeFileEditor.py:793
+#: ../controls/VariablePanel.py:798 ../IDEFrame.py:1646
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr "\"%s\" ist ein Schlüsselwort. Es kann nicht verwendet werden!"
@@ -152,29 +166,30 @@
 msgid "\"%s\" is not a valid folder!"
 msgstr "\"%s\" ist kein Ordner!"
 
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:105
 #: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
-#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
-#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
-#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
-#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
+#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:162
+#: ../etherlab/ConfigEditor.py:971 ../editors/ResourceEditor.py:479
+#: ../editors/ResourceEditor.py:516 ../editors/DataTypeEditor.py:601
+#: ../editors/CodeFileEditor.py:791 ../controls/VariablePanel.py:796
+#: ../IDEFrame.py:1644
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "\"%s\" ist kein gültiger Bezeichner!"
 
-#: ../IDEFrame.py:2436
+#: ../IDEFrame.py:2454
 #, python-format
 msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
 msgstr ""
 "\"%s\" wird von einer oder mehreren Bausteinen benutzt. Wollen Sie "
 "fortfahren?"
 
-#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
+#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:166
 #: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
 #: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
 #: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
-#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
-#: ../IDEFrame.py:1647
+#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:363
+#: ../IDEFrame.py:1664
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "Baustein \"%s\" existiert bereits!"
@@ -203,7 +218,7 @@
 "Wert \"%s\" ist keine gültige Array-Größe!\n"
 "Der rechte Wert muss größer sein als der linke."
 
-#: ../PLCGenerator.py:1133
+#: ../PLCGenerator.py:1182
 #, python-brace-format
 msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
 msgstr "Funktion \"{a1}\" in \"{a2}\" abgebrochen POU: Nicht mit Eingang verbunden"
@@ -223,35 +238,35 @@
 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
 msgstr "Ressource \"{a1}\" existiert in Konfiguration \"{a2}\" nicht !!!"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:559
 #, python-format
 msgid "%03gms"
 msgstr "%03g ms"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:550
 #, python-format
 msgid "%dd"
 msgstr "%d T"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:189
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:551
 #, python-format
 msgid "%dh"
 msgstr "%d S"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:188
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:552
 #, python-format
 msgid "%dm"
 msgstr "%d M"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:186
 #, python-format
 msgid "%dms"
 msgstr "%d ms"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:187
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:553
 #, python-format
 msgid "%ds"
 msgstr "%d s"
@@ -284,7 +299,12 @@
 msgid "%s body don't have text!"
 msgstr "Baustein \"%s\" ist leer!"
 
-#: ../IDEFrame.py:388
+#: ../etherlab/ConfigEditor.py:856
+#, python-format
+msgid "%s's nodes"
+msgstr ""
+
+#: ../IDEFrame.py:391
 msgid "&Add Element"
 msgstr "&Element hinzufügen"
 
@@ -293,35 +313,35 @@
 msgid "&Close"
 msgstr "&Schließen"
 
-#: ../IDEFrame.py:361
+#: ../IDEFrame.py:364
 msgid "&Configuration"
 msgstr "&Konfiguration"
 
-#: ../IDEFrame.py:350
+#: ../IDEFrame.py:353
 msgid "&Data Type"
 msgstr "&Datentyp"
 
-#: ../IDEFrame.py:392
+#: ../IDEFrame.py:395
 msgid "&Delete"
 msgstr "&Löschen"
 
-#: ../IDEFrame.py:342
+#: ../IDEFrame.py:345
 msgid "&Display"
 msgstr "&Ansicht"
 
-#: ../IDEFrame.py:341
+#: ../IDEFrame.py:344
 msgid "&Edit"
 msgstr "&Bearbeiten"
 
-#: ../IDEFrame.py:340
+#: ../IDEFrame.py:343
 msgid "&File"
 msgstr "&Datei"
 
-#: ../IDEFrame.py:352
+#: ../IDEFrame.py:355
 msgid "&Function"
 msgstr "&Funktion"
 
-#: ../IDEFrame.py:343
+#: ../IDEFrame.py:346
 msgid "&Help"
 msgstr "&Hilfe"
 
@@ -329,7 +349,7 @@
 msgid "&License"
 msgstr "&Lizenz"
 
-#: ../IDEFrame.py:356
+#: ../IDEFrame.py:359
 msgid "&Program"
 msgstr "&Programm"
 
@@ -341,10 +361,14 @@
 msgid "&Recent Projects"
 msgstr "&Zuletzt verwendete Projekte"
 
-#: ../IDEFrame.py:358
+#: ../IDEFrame.py:361
 msgid "&Resource"
 msgstr "&Ressource"
 
+#: ../etherlab/ConfigEditor.py:450
+msgid "'Read from' and 'Write to' variables types are not compatible"
+msgstr ""
+
 #: ../controls/SearchResultPanel.py:247
 #, python-brace-format
 msgid "'{a1}' - {a2} match in project"
@@ -355,7 +379,7 @@
 msgid "'{a1}' - {a2} matches in project"
 msgstr "'{a1}' - {a2} Übereinstimmungen im Projekt"
 
-#: ../connectors/PYRO/__init__.py:98
+#: ../connectors/PYRO/__init__.py:99
 #, python-brace-format
 msgid "'{a1}' is located at {a2}\n"
 msgstr "'{a1}' befindet sich unter {a2}\n"
@@ -365,8 +389,8 @@
 msgid "(%d matches)"
 msgstr "(%d Ergebnisse)"
 
-#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
-#: ../dialogs/PouDialog.py:124
+#: ../dialogs/PouTransitionDialog.py:102 ../dialogs/PouActionDialog.py:101
+#: ../dialogs/PouDialog.py:159
 #, python-format
 msgid ", %s"
 msgstr ", %s"
@@ -391,8 +415,8 @@
 msgid "1s"
 msgstr "1s"
 
-#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
-#: ../IDEFrame.py:1715
+#: ../dialogs/PouDialog.py:168 ../IDEFrame.py:1667 ../IDEFrame.py:1713
+#: ../IDEFrame.py:1732
 #, python-format
 msgid ""
 "A POU has an element named \"%s\". This could cause a conflict. Do you wish "
@@ -401,9 +425,9 @@
 "Ein POU enthält ein Element mit dem Namen \"%s\". Das könnte eine Kollision "
 "sein. Möchten Sie fortfahren?"
 
-#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
+#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:109
 #: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
-#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
+#: ../controls/VariablePanel.py:800 ../IDEFrame.py:1681 ../IDEFrame.py:1694
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr "Baustein mit dem Namen \"%s\" existiert bereits!"
@@ -413,21 +437,21 @@
 msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
 msgstr "Ein Kind mit dem Namen \"{a1}\" existiert bereits -> \"{a2}\"\n"
 
-#: ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/BrowseLocationsDialog.py:228
 msgid "A location must be selected!"
 msgstr "Bitte wählen Sie einen Ort aus!"
 
-#: ../editors/ResourceEditor.py:485
+#: ../editors/ResourceEditor.py:483
 msgid "A task with the same name already exists!"
 msgstr "Task mit dem gleichen Namen existiert bereits!"
 
-#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
-#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
+#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:802
+#: ../IDEFrame.py:1683 ../IDEFrame.py:1696
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
 msgstr "Variable mit den Namen \"%s\" existiert bereits im Baustein!"
 
-#: ../editors/CodeFileEditor.py:778
+#: ../editors/CodeFileEditor.py:797
 #, python-format
 msgid "A variable with \"%s\" as name already exists!"
 msgstr "Variable mit dem Namen \"%s\" existiert bereits!"
@@ -440,11 +464,15 @@
 msgid "Absolute number"
 msgstr "Absolute Zahl"
 
+#: ../etherlab/ConfigEditor.py:48
+msgid "Access"
+msgstr "Zugriff"
+
 #: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
 msgid "Action"
 msgstr "Aktion"
 
-#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
+#: ../editors/Viewer.py:656 ../editors/Viewer.py:2429
 msgid "Action Block"
 msgstr "Aktionsblock"
 
@@ -469,56 +497,64 @@
 msgid "Actions:"
 msgstr "Aktionen:"
 
-#: ../editors/Viewer.py:473
+#: ../editors/Viewer.py:484
 msgid "Active"
 msgstr "Aktiv"
 
 #: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
-#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
+#: ../BeremizIDE.py:998 ../editors/Viewer.py:689
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
+#: ../IDEFrame.py:1941 ../IDEFrame.py:1976
 msgid "Add Action"
 msgstr "Aktion hinzufügen"
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "Add C code accessing located variables synchronously"
 msgstr "Synchron ausführenden C-Code hinzufügen"
 
-#: ../IDEFrame.py:1907
+#: ../IDEFrame.py:1924
 msgid "Add Configuration"
 msgstr "Konfiguration hinzufügen"
 
-#: ../IDEFrame.py:1887
+#: ../IDEFrame.py:1904
 msgid "Add DataType"
 msgstr "Datentyp hinzufügen"
 
-#: ../editors/Viewer.py:609
+#: ../editors/Viewer.py:612
 msgid "Add Divergence Branch"
 msgstr "Zweig hinzufügen"
 
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave to Master"
+msgstr ""
+
 #: ../dialogs/DiscoveryDialog.py:121
 msgid "Add IP"
 msgstr "IP hinzufügen"
 
-#: ../IDEFrame.py:1895
+#: ../IDEFrame.py:1912
 msgid "Add POU"
 msgstr "Baustein hinzufügen"
 
-#: ../features.py:34
+#: ../features.py:23
 msgid "Add Python code executed asynchronously"
 msgstr "Asynchron auszuführenden Python-Code hinzufügen"
 
-#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
+#: ../IDEFrame.py:1952 ../IDEFrame.py:2002
 msgid "Add Resource"
 msgstr "Ressource hinzufügen"
 
-#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
+#: ../IDEFrame.py:1930 ../IDEFrame.py:1973
 msgid "Add Transition"
 msgstr "Transitionsbedingung hinzufügen"
 
-#: ../editors/Viewer.py:596
+#: ../editors/Viewer.py:599
 msgid "Add Wire Segment"
 msgstr "Drahtsegment hinzufügen "
 
@@ -526,7 +562,7 @@
 msgid "Add a new initial step"
 msgstr "Den ersten Schritt hinzufügen"
 
-#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
+#: ../editors/Viewer.py:2790 ../editors/SFCViewer.py:784
 msgid "Add a new jump"
 msgstr "Neuen Sprung hinzufügen"
 
@@ -534,7 +570,7 @@
 msgid "Add a new step"
 msgstr "Neuen Schritt hinzufügen"
 
-#: ../features.py:35
+#: ../features.py:24
 msgid "Add a simple WxGlade based GUI."
 msgstr "Einfache WxGlade basierte GUI hinzufügen."
 
@@ -546,22 +582,46 @@
 msgid "Add element"
 msgstr "Komponent hinzufügen"
 
-#: ../editors/ResourceEditor.py:283
+#: ../etherlab/ConfigEditor.py:1388
+msgid "Add file from ESI files database"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1360
+msgid "Add file to project"
+msgstr "Datei zum Projekt hinzufügen"
+
+#: ../editors/ResourceEditor.py:281
 msgid "Add instance"
 msgstr "Instanz hinzufügen"
 
+#: ../etherlab/ConfigEditor.py:652
+msgid "Add process variable"
+msgstr "Prozess Variable hinzufügen"
+
 #: ../canfestival/NetworkEditor.py:110
 msgid "Add slave"
 msgstr "Slave hinzufügen"
 
-#: ../editors/ResourceEditor.py:252
+#: ../etherlab/ConfigEditor.py:679
+msgid "Add startup service variable"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:250
 msgid "Add task"
 msgstr "Task hinzufügen"
 
-#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
+#: ../bacnet/BacnetSlaveEditor.py:811 ../editors/CodeFileEditor.py:672
+#: ../controls/VariablePanel.py:483
 msgid "Add variable"
 msgstr "Variable hinzufügen"
 
+#: ../etherlab/etherlab.py:186
+msgid ""
+"Adding a PDO not defined in default configuration\n"
+"for mapping needed location variables\n"
+"(1 if possible)"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:33
 msgid "Addition"
 msgstr "Addition"
@@ -570,27 +630,28 @@
 msgid "Additional function blocks"
 msgstr "Zusätzliche Bausteine"
 
-#: ../editors/Viewer.py:669
+#: ../editors/Viewer.py:672
 msgid "Adjust Block Size"
 msgstr "Bausteingröße anpassen"
 
-#: ../editors/Viewer.py:1720
+#: ../editors/Viewer.py:1722
 msgid "Alignment"
 msgstr "Ausrichtung"
 
 #: ../dialogs/BrowseLocationsDialog.py:42
-#: ../dialogs/BrowseLocationsDialog.py:53
-#: ../dialogs/BrowseLocationsDialog.py:152
-#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
-#: ../controls/VariablePanel.py:88
+#: ../dialogs/BrowseLocationsDialog.py:50
+#: ../dialogs/BrowseLocationsDialog.py:151
+#: ../dialogs/BrowseLocationsDialog.py:154 ../etherlab/ConfigEditor.py:65
+#: ../etherlab/ConfigEditor.py:853 ../controls/LogViewer.py:307
+#: ../controls/VariablePanel.py:85
 msgid "All"
 msgstr "Alle"
 
-#: ../editors/FileManagementPanel.py:37
+#: ../editors/FileManagementPanel.py:51
 msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
 msgstr "Alle Dateien (*.*)|*.*|CSV Dateien (*.csv)|*.csv"
 
-#: ../ProjectController.py:1670
+#: ../ProjectController.py:1752
 msgid "Already connected. Please disconnect\n"
 msgstr "Bereits verbunden. Bitte Verbindung trennen\n"
 
@@ -603,6 +664,23 @@
 msgid "An instance with the same name already exists!"
 msgstr "Instanz mit dem gleichen Namen existiert bereits!"
 
+#: ../etherlab/ConfigEditor.py:975
+#, python-format
+msgid "An variable named \"%s\" already exists!"
+msgstr "Variable mit dem Namen \"%s\" existiert bereits!"
+
+#: ../bacnet/BacnetSlaveEditor.py:935
+msgid "Analog Input Objects"
+msgstr "Analoges Eingangsobjekt"
+
+#: ../bacnet/BacnetSlaveEditor.py:934
+msgid "Analog Output Objects"
+msgstr "Analoges Ausgangsobjekt"
+
+#: ../bacnet/BacnetSlaveEditor.py:933
+msgid "Analog Value Objects"
+msgstr ""
+
 #: ../dialogs/ConnectionDialog.py:103
 msgid "Apply name modification to all continuations with the same name"
 msgstr "Umbenennen alle Fortsetzungen mit dem gleichen Namen"
@@ -624,7 +702,7 @@
 msgstr "Arithmetik"
 
 #: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
-#: ../controls/VariablePanel.py:872
+#: ../controls/VariablePanel.py:883
 msgid "Array"
 msgstr "Array"
 
@@ -632,22 +710,34 @@
 msgid "Assignment"
 msgstr "Zuordnung"
 
-#: ../dialogs/FBDVariableDialog.py:226
+#: ../dialogs/FBDVariableDialog.py:227
 msgid "At least a variable or an expression must be selected!"
 msgstr "Mindestens eine Variable oder ein Ausdruck muss ausgewählt werden!"
 
-#: ../controls/ProjectPropertiesPanel.py:111
+#: ../controls/ProjectPropertiesPanel.py:113
 msgid "Author"
 msgstr "Autor"
 
-#: ../controls/ProjectPropertiesPanel.py:108
+#: ../controls/ProjectPropertiesPanel.py:110
 msgid "Author Name (optional):"
 msgstr "Autor (optional):"
 
+#: ../etherlab/EthercatCIA402Slave.py:125
+msgid "Axis Pos"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:118
+msgid "Axis Ref"
+msgstr ""
+
 #: ../dialogs/FindInPouDialog.py:80
 msgid "Backward"
 msgstr "Zurück"
 
+#: ../features.py:19
+msgid "Bacnet support"
+msgstr "Bacnet Unterstützung"
+
 #: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
 #, python-format
 msgid "Bad location size : %s"
@@ -658,14 +748,30 @@
 msgid "Base Type:"
 msgstr "Basistyp:"
 
-#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
+#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:841
 msgid "Base Types"
 msgstr "Basistypen"
 
-#: ../BeremizIDE.py:483
+#: ../BeremizIDE.py:479
 msgid "Beremiz"
 msgstr "Beremiz"
 
+#: ../runtime/NevowServer.py:201
+msgid "Beremiz Runtime Settings"
+msgstr "Beremiz Laufzeit Einstellungen"
+
+#: ../bacnet/BacnetSlaveEditor.py:938
+msgid "Binary Input Objects"
+msgstr "Binäres Eingangsobjekt"
+
+#: ../bacnet/BacnetSlaveEditor.py:937
+msgid "Binary Output Objects"
+msgstr "Binäres Ausgangsobjekt"
+
+#: ../bacnet/BacnetSlaveEditor.py:936
+msgid "Binary Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:70
 msgid "Binary selection (1 of 2)"
 msgstr "Binärauswahl (1 von 2)"
@@ -694,7 +800,7 @@
 msgid "Bitwise inverting"
 msgstr "bitweises NICHT"
 
-#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
+#: ../editors/Viewer.py:624 ../editors/Viewer.py:2442
 msgid "Block"
 msgstr "Funktionsblock"
 
@@ -706,11 +812,11 @@
 msgid "Block name"
 msgstr "Blockname"
 
-#: ../editors/Viewer.py:586
+#: ../editors/Viewer.py:589
 msgid "Bottom"
 msgstr "Unten"
 
-#: ../ProjectController.py:1400
+#: ../runtime/PlcStatus.py:11
 msgid "Broken"
 msgstr "Gebrochen"
 
@@ -719,27 +825,27 @@
 msgid "Browse %s values library"
 msgstr "Wert für %s wählen"
 
-#: ../dialogs/BrowseLocationsDialog.py:72
+#: ../dialogs/BrowseLocationsDialog.py:69
 msgid "Browse Locations"
 msgstr "Verfügbare IEC-Adressen:"
 
-#: ../ProjectController.py:1815
+#: ../ProjectController.py:1898
 msgid "Build"
 msgstr "Build"
 
-#: ../ProjectController.py:1335
+#: ../ProjectController.py:1397
 msgid "Build directory already clean\n"
 msgstr "Build-Verzeichnis bereits sauber\n"
 
-#: ../ProjectController.py:1816
+#: ../ProjectController.py:1899
 msgid "Build project into build folder"
 msgstr "Build-Projekt nach Build-Verzeichnis"
 
-#: ../ProjectController.py:1108
+#: ../ProjectController.py:1155
 msgid "C Build crashed !\n"
 msgstr "C Build abgestürzt !\n"
 
-#: ../ProjectController.py:1105
+#: ../ProjectController.py:1152
 msgid "C Build failed.\n"
 msgstr "C Build fehlgeschlagen.\n"
 
@@ -747,7 +853,7 @@
 msgid "C code"
 msgstr "C code"
 
-#: ../ProjectController.py:1186
+#: ../ProjectController.py:1240
 msgid "C code generated successfully.\n"
 msgstr "C Code erfolgreich generiert.\n"
 
@@ -760,7 +866,7 @@
 msgid "C compilation of %s failed.\n"
 msgstr "C Kompilierung von %s fehlgeschlagen.\n"
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "C extension"
 msgstr "C-Erweiterung"
 
@@ -776,16 +882,20 @@
 msgid "CANOpen slave"
 msgstr "CANOpen slave"
 
-#: ../features.py:31
+#: ../features.py:18
 msgid "CANopen support"
 msgstr "CANopen support"
 
+#: ../etherlab/ConfigEditor.py:858
+msgid "CIA402 nodes"
+msgstr ""
+
 #: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
 #: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
 msgid "Can only generate execution order on FBD networks!"
 msgstr "Abarbeitungsreihenfolge kann nur für FUP Bausteine bestimmt werden!"
 
-#: ../controls/VariablePanel.py:291
+#: ../controls/VariablePanel.py:290
 msgid "Can only give a location to local or global variables"
 msgstr "EIC-Nur lokale oder globale Variable können eine zugeordnet sein."
 
@@ -794,7 +904,7 @@
 msgid "Can't generate program to file %s!"
 msgstr "Code-Erzeugung zur Datei \"%s\" ist fehlgeschlagen!"
 
-#: ../controls/VariablePanel.py:289
+#: ../controls/VariablePanel.py:288
 msgid "Can't give a location to a function block instance"
 msgstr "IEC-Adresse für eine Funktionsbausteininstanz ist nicht erlaubt "
 
@@ -803,7 +913,7 @@
 msgid "Can't save project to file %s!"
 msgstr "Projekt kann nicht in die Datei %s gespeichert werden!"
 
-#: ../controls/VariablePanel.py:339
+#: ../controls/VariablePanel.py:338
 msgid "Can't set an initial value to a function block instance"
 msgstr "Anfangswert für eine Funktionsbausteininstanz ist nicht erlaubt"
 
@@ -817,11 +927,11 @@
 msgid "Cannot find lower free IEC channel than %d\n"
 msgstr "Kann keinen niedrigeren IEC-Kanal als %d finden\n"
 
-#: ../connectors/PYRO/__init__.py:139
+#: ../connectors/PYRO/__init__.py:140
 msgid "Cannot get PLC status - connection failed.\n"
 msgstr "Kann den SPS-Status nicht einlesen - Verbindung gescheitert.\n"
 
-#: ../ProjectController.py:967
+#: ../ProjectController.py:1013
 msgid "Cannot open/parse VARIABLES.csv!\n"
 msgstr "Kann die Datei VARIABLES.csv nicht öffnen/lesen!\n"
 
@@ -834,35 +944,35 @@
 "Kann Bit-Offset für nicht-bool '{a1}' Variable (ID: {a2}, Idx: {a3}, sIdx: "
 "{a4})) nicht setzen"
 
-#: ../ProjectController.py:1761
+#: ../ProjectController.py:1842
 msgid "Cannot transfer while PLC is running. Stop it now?"
-msgstr ""
+msgstr "Kann nicht übertragen, während SPS läuft. Jetzt stoppen?"
 
 #: ../dialogs/SearchInProjectDialog.py:63 ../dialogs/FindInPouDialog.py:89
 msgid "Case sensitive"
 msgstr "Case-sensitive"
 
-#: ../editors/Viewer.py:581
+#: ../editors/Viewer.py:584
 msgid "Center"
 msgstr "Zentriert"
 
-#: ../Beremiz_service.py:276
+#: ../Beremiz_service.py:289
 msgid "Change IP of interface to bind"
 msgstr "Ändere IP-Adresse des zu verbindenden Interfaces."
 
-#: ../Beremiz_service.py:275
+#: ../Beremiz_service.py:288
 msgid "Change Name"
 msgstr "Ändere Name"
 
-#: ../IDEFrame.py:1977
+#: ../IDEFrame.py:1994
 msgid "Change POU Type To"
 msgstr "Bausteintyp konvertieren nach"
 
-#: ../Beremiz_service.py:277
+#: ../Beremiz_service.py:290
 msgid "Change Port Number"
 msgstr "Ändere Port-Nummer"
 
-#: ../Beremiz_service.py:278
+#: ../Beremiz_service.py:291
 msgid "Change working directory"
 msgstr "Ändere Arbeitsverzeichnis"
 
@@ -874,16 +984,21 @@
 msgid "Choose a SVG file"
 msgstr "Wählen Sie eine SVG-Datei"
 
-#: ../ProjectController.py:561
+#: ../etherlab/EtherCATManagementEditor.py:911
+#: ../etherlab/EtherCATManagementEditor.py:1306
+msgid "Choose a binary file"
+msgstr "Wähle eine Binärdatei"
+
+#: ../ProjectController.py:582
 msgid "Choose a directory to save project"
 msgstr "Wählen Sie ein Verzeichnis um das Projekt zu speichern"
 
-#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
-#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
+#: ../canfestival/canfestival.py:171 ../bacnet/bacnet.py:434
+#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
 msgid "Choose a file"
 msgstr "Datei auswählen"
 
-#: ../BeremizIDE.py:900
+#: ../BeremizIDE.py:897
 msgid "Choose a project"
 msgstr "Wähle Projekt"
 
@@ -892,21 +1007,25 @@
 msgid "Choose a value for %s:"
 msgstr "Wählen Sie den Wert für %s:"
 
-#: ../Beremiz_service.py:333
+#: ../Beremiz_service.py:346
 msgid "Choose a working directory "
 msgstr "Wähle Arbeitsverzeichnis"
 
-#: ../BeremizIDE.py:864
+#: ../etherlab/ConfigEditor.py:1234
+msgid "Choose an XML file"
+msgstr "Wähle eine XML Datei"
+
+#: ../BeremizIDE.py:861
 msgid "Choose an empty directory for new project"
 msgstr "Wählen Sie leeres Verzeichnis für neues Projekt"
 
-#: ../ProjectController.py:468
+#: ../ProjectController.py:483
 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
 msgstr ""
 "Ausgewählter Ordner beinhaltet kein Programm. Es handelt sich dabei nicht um"
 " ein gültiges Projekt!"
 
-#: ../ProjectController.py:435
+#: ../ProjectController.py:450
 msgid "Chosen folder isn't empty. You can't use it for a new project!"
 msgstr ""
 "Gewählter Ordner ist nicht leer. Sie können diesen nicht für ein neues "
@@ -916,15 +1035,15 @@
 msgid "Class"
 msgstr "Klasse"
 
-#: ../controls/VariablePanel.py:472
+#: ../controls/VariablePanel.py:474
 msgid "Class Filter:"
 msgstr "Klassenfilter:"
 
-#: ../dialogs/FBDVariableDialog.py:74
+#: ../dialogs/FBDVariableDialog.py:75
 msgid "Class:"
 msgstr "Klasse:"
 
-#: ../ProjectController.py:1821
+#: ../ProjectController.py:1904
 msgid "Clean"
 msgstr "Aufräumen"
 
@@ -932,32 +1051,33 @@
 msgid "Clean log messages"
 msgstr "Protokoll zurücksetzen"
 
-#: ../ProjectController.py:1822
+#: ../ProjectController.py:1905
 msgid "Clean project build folder"
 msgstr "Projekt-Build-Verzeichnis leeren"
 
-#: ../ProjectController.py:1332
+#: ../ProjectController.py:1394
 msgid "Cleaning the build directory\n"
 msgstr "Build-Verzeichnis leeren\n"
 
-#: ../IDEFrame.py:437
+#: ../IDEFrame.py:439
 msgid "Clear Errors"
 msgstr "Fehlermeldungen zurücksetzen"
 
-#: ../editors/Viewer.py:680
+#: ../editors/Viewer.py:683
 msgid "Clear Execution Order"
 msgstr "Ausführungsreihenfolge zurücksetzen"
 
 #: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
+#: ../etherlab/ConfigEditor.py:1361
 msgid "Close"
 msgstr "Schließen"
 
-#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
+#: ../BeremizIDE.py:623 ../PLCOpenEditor.py:183
 msgid "Close Application"
 msgstr "Anwendung beenden"
 
-#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
-#: ../IDEFrame.py:1040
+#: ../BeremizIDE.py:253 ../BeremizIDE.py:562 ../PLCOpenEditor.py:81
+#: ../IDEFrame.py:1053
 msgid "Close Project"
 msgstr "Projekt schließen"
 
@@ -965,28 +1085,32 @@
 msgid "Close Tab"
 msgstr "Reiter schließen"
 
-#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
+#: ../editors/Viewer.py:641 ../editors/Viewer.py:2450
 msgid "Coil"
 msgstr "Spule"
 
-#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
+#: ../editors/Viewer.py:662 ../editors/LDViewer.py:517
 msgid "Comment"
 msgstr "Kommentar"
 
+#: ../etherlab/ConfigEditor.py:66
+msgid "Communication Parameters"
+msgstr "Kommunikationsparameter"
+
 #: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
 #: ../PLCOpenEditor.py:138
 msgid "Community support"
 msgstr "Community Unterstützung"
 
-#: ../dialogs/ProjectDialog.py:65
+#: ../dialogs/ProjectDialog.py:63
 msgid "Company Name"
 msgstr "Firmenname"
 
-#: ../controls/ProjectPropertiesPanel.py:106
+#: ../controls/ProjectPropertiesPanel.py:108
 msgid "Company Name (required):"
 msgstr "Firmenname (erforderlich):"
 
-#: ../controls/ProjectPropertiesPanel.py:107
+#: ../controls/ProjectPropertiesPanel.py:109
 msgid "Company URL (optional):"
 msgstr "Firmenwebseite (optional):"
 
@@ -994,7 +1118,7 @@
 msgid "Comparison"
 msgstr "Vergleich"
 
-#: ../ProjectController.py:756
+#: ../ProjectController.py:787
 msgid "Compiling IEC Program into C code...\n"
 msgstr "Kompilliere IEC Programm zu c-Code...\n"
 
@@ -1020,25 +1144,25 @@
 
 #: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
 #: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
-#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:353
 msgid "Confirm or change variable name"
 msgstr "Variablennamen bestätigen oder anpassen"
 
-#: ../ProjectController.py:1842
+#: ../ProjectController.py:1925
 msgid "Connect"
 msgstr "Verbinden"
 
-#: ../ProjectController.py:1843
+#: ../ProjectController.py:1926
 msgid "Connect to the target PLC"
 msgstr "Mit Ziel-SPS verbinden"
 
-#: ../ProjectController.py:1391
+#: ../ProjectController.py:1469
 #, python-format
 msgid "Connected to URI: %s"
 msgstr "Verbunden mit URI: %s"
 
-#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
-#: ../editors/Viewer.py:2441
+#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:626
+#: ../editors/Viewer.py:2443
 msgid "Connection"
 msgstr "Verbindung"
 
@@ -1046,25 +1170,25 @@
 msgid "Connection Properties"
 msgstr "Verbindungseigenschaften"
 
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1773
 msgid "Connection canceled!\n"
 msgstr "Verbindung abgebrochen!\n"
 
-#: ../ProjectController.py:1714
+#: ../ProjectController.py:1797
 #, python-format
 msgid "Connection failed to %s!\n"
 msgstr "Verbindung zu %s gescheitert!\n"
 
-#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
+#: ../connectors/PYRO/__init__.py:124 ../connectors/WAMP/__init__.py:121
 msgid "Connection lost!\n"
 msgstr "Verbindung verloren!\n"
 
-#: ../connectors/PYRO/__init__.py:110
+#: ../connectors/PYRO/__init__.py:111
 #, python-format
 msgid "Connection to '%s' failed.\n"
 msgstr "Verbindung zu '%s' gescheitert.\n"
 
-#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
+#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1678
 msgid "Connector"
 msgstr "Anschluss"
 
@@ -1072,7 +1196,7 @@
 msgid "Connectors:"
 msgstr "Anschlüsse:"
 
-#: ../BeremizIDE.py:378
+#: ../BeremizIDE.py:374
 msgid "Console"
 msgstr "Konsole"
 
@@ -1080,18 +1204,22 @@
 msgid "Constant"
 msgstr "Konstante"
 
-#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
+#: ../editors/Viewer.py:637 ../editors/Viewer.py:2446
 msgid "Contact"
 msgstr "Kontakt"
 
-#: ../controls/ProjectPropertiesPanel.py:217
+#: ../controls/ProjectPropertiesPanel.py:219
 msgid "Content Description (optional):"
 msgstr "Beschreibung (optional):"
 
-#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
+#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1679
 msgid "Continuation"
 msgstr "Fortsetzung"
 
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Control Byte"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:18
 msgid "Conversion from BCD"
 msgstr "Konvertierung von BCD"
@@ -1108,20 +1236,20 @@
 msgid "Conversion to time-of-day"
 msgstr "Umwandlung in Tageszeit"
 
-#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
-#: ../IDEFrame.py:427
+#: ../editors/Viewer.py:698 ../controls/LogViewer.py:713 ../IDEFrame.py:375
+#: ../IDEFrame.py:428
 msgid "Copy"
 msgstr "Kopieren"
 
-#: ../IDEFrame.py:1964
+#: ../IDEFrame.py:1981
 msgid "Copy POU"
 msgstr "Baustein kopieren"
 
-#: ../editors/FileManagementPanel.py:68
+#: ../editors/FileManagementPanel.py:67
 msgid "Copy file from left folder to right"
 msgstr "Datei vom linken Ordner nach den rechten kopieren"
 
-#: ../editors/FileManagementPanel.py:67
+#: ../editors/FileManagementPanel.py:66
 msgid "Copy file from right folder to left"
 msgstr "Datei vom rechten Ordner nach den linken kopieren"
 
@@ -1143,6 +1271,16 @@
 msgid "Couldn't import old %s file."
 msgstr "Die alte Datei %s konnte nicht importiert weden."
 
+#: ../etherlab/EthercatMaster.py:258
+#, python-format
+msgid "Couldn't load %s network configuration file."
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:279
+#, python-format
+msgid "Couldn't load %s network process variables file."
+msgstr ""
+
 #: ../ConfigTreeNode.py:630
 #, python-brace-format
 msgid ""
@@ -1161,15 +1299,22 @@
 "Confnode Parameter {a1} konnten nicht geladen werden :\n"
 "{a2}"
 
+#: ../etherlab/etherlab.py:264
+#, python-brace-format
+msgid ""
+"Couldn't load {a1} XML file:\n"
+"{a2}"
+msgstr ""
+
 #: ../PLCControler.py:552
 msgid "Couldn't paste non-POU object."
 msgstr "Nur Bausteine können eingefügt werden."
 
-#: ../ProjectController.py:1636
+#: ../ProjectController.py:1717
 msgid "Couldn't start PLC !\n"
 msgstr "Konnte SPS nicht starten !\n"
 
-#: ../ProjectController.py:1644
+#: ../ProjectController.py:1725
 msgid "Couldn't stop PLC !\n"
 msgstr "Konnte SPS nicht anhalten !\n"
 
@@ -1177,43 +1322,43 @@
 msgid "Create HMI"
 msgstr "HMI erstellen"
 
-#: ../dialogs/PouDialog.py:54
+#: ../dialogs/PouDialog.py:48
 msgid "Create a new POU"
 msgstr "Neuer Baustein"
 
-#: ../dialogs/PouActionDialog.py:45
+#: ../dialogs/PouActionDialog.py:42
 msgid "Create a new action"
 msgstr "Neue Aktion"
 
-#: ../IDEFrame.py:166
+#: ../IDEFrame.py:313
 msgid "Create a new action block"
 msgstr "Neuer Aktionsblock"
 
-#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
+#: ../IDEFrame.py:262 ../IDEFrame.py:292 ../IDEFrame.py:325
 msgid "Create a new block"
 msgstr "Neuer Funktionsblock"
 
-#: ../IDEFrame.py:139
+#: ../IDEFrame.py:286
 msgid "Create a new branch"
 msgstr "Neuer Zweig"
 
-#: ../IDEFrame.py:133
+#: ../IDEFrame.py:280
 msgid "Create a new coil"
 msgstr "Neue Spule"
 
-#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
+#: ../IDEFrame.py:256 ../IDEFrame.py:271 ../IDEFrame.py:301
 msgid "Create a new comment"
 msgstr "Neuer Kommentar"
 
-#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
+#: ../IDEFrame.py:265 ../IDEFrame.py:295 ../IDEFrame.py:328
 msgid "Create a new connection"
 msgstr "Neue Verbindung"
 
-#: ../IDEFrame.py:136 ../IDEFrame.py:187
+#: ../IDEFrame.py:283 ../IDEFrame.py:334
 msgid "Create a new contact"
 msgstr "Neuer Kontakt"
 
-#: ../IDEFrame.py:169
+#: ../IDEFrame.py:316
 msgid "Create a new divergence"
 msgstr "Neue Verzweigung"
 
@@ -1221,43 +1366,55 @@
 msgid "Create a new divergence or convergence"
 msgstr "Neue Verzweigung"
 
-#: ../IDEFrame.py:157
+#: ../IDEFrame.py:304
 msgid "Create a new initial step"
 msgstr "Erster Schritt"
 
-#: ../IDEFrame.py:172
+#: ../IDEFrame.py:319
 msgid "Create a new jump"
 msgstr "Neuer Sprung"
 
-#: ../IDEFrame.py:127 ../IDEFrame.py:184
+#: ../IDEFrame.py:274 ../IDEFrame.py:331
 msgid "Create a new power rail"
 msgstr "Neue Stomleitung"
 
-#: ../IDEFrame.py:130
+#: ../IDEFrame.py:277
 msgid "Create a new rung"
 msgstr "Neues KOP-Netzwerk"
 
-#: ../IDEFrame.py:160
+#: ../IDEFrame.py:307
 msgid "Create a new step"
 msgstr "Neuer Schritt"
 
-#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
+#: ../dialogs/PouTransitionDialog.py:45 ../IDEFrame.py:310
 msgid "Create a new transition"
 msgstr "Neue Transitionsbedingung"
 
-#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
+#: ../IDEFrame.py:259 ../IDEFrame.py:289 ../IDEFrame.py:322
 msgid "Create a new variable"
 msgstr "Erstellen eine neue Variable"
 
+#: ../etherlab/etherlab.py:183
+msgid "Creating new PDO"
+msgstr "Neuer Baustein"
+
 #: ../dialogs/AboutDialog.py:109
 msgid "Credits"
 msgstr "Mitwirkende"
 
-#: ../Beremiz_service.py:424
+#: ../runtime/WampClient.py:400
+msgid "Current status"
+msgstr "Aktueller Status"
+
+#: ../Beremiz_service.py:437
 msgid "Current working directory :"
 msgstr "Arbeitsverzeichnis :"
 
-#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
+#: ../runtime/WampClient.py:161
+msgid "Custom protocol options failed :"
+msgstr ""
+
+#: ../editors/Viewer.py:697 ../IDEFrame.py:373 ../IDEFrame.py:427
 msgid "Cut"
 msgstr "Ausschneiden"
 
@@ -1306,11 +1463,11 @@
 msgid "Date subtraction"
 msgstr "Datumssubstraktion"
 
-#: ../dialogs/DurationEditorDialog.py:46
+#: ../dialogs/DurationEditorDialog.py:57
 msgid "Days:"
 msgstr "Tage:"
 
-#: ../ProjectController.py:1729
+#: ../ProjectController.py:1809
 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
 msgstr ""
 "Debug entspricht der SPS nicht - stoppen/übertragen/starten um Debug wieder "
@@ -1320,42 +1477,51 @@
 msgid "Debug instance"
 msgstr "Debuginstanz"
 
-#: ../editors/Viewer.py:490
+#: ../editors/Viewer.py:493
 #, python-format
 msgid "Debug: %s"
 msgstr "Debug: %s"
 
-#: ../ProjectController.py:1471
+#: ../ProjectController.py:1548
 #, python-format
 msgid "Debug: Unknown variable '%s'\n"
 msgstr "Debug: Unbekannte Variable '%s'\n"
 
-#: ../ProjectController.py:1469
+#: ../ProjectController.py:1545
 #, python-format
 msgid "Debug: Unsupported type to debug '%s'\n"
 msgstr "Debug: Datentyp '%s' ist nicht unterstützt\n"
 
-#: ../IDEFrame.py:660
+#: ../IDEFrame.py:666
 msgid "Debugger"
 msgstr "Debugger"
 
-#: ../ProjectController.py:1726
+#: ../ProjectController.py:1805
 msgid "Debugger ready\n"
 msgstr "Debugger ist bereit\n"
 
-#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Default Size"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:174
+#, python-format
+msgid "Definition conflict for location \"%s\""
+msgstr ""
+
+#: ../BeremizIDE.py:1001 ../editors/Viewer.py:673 ../IDEFrame.py:2010
 msgid "Delete"
 msgstr "Löschen"
 
-#: ../editors/Viewer.py:610
+#: ../editors/Viewer.py:613
 msgid "Delete Divergence Branch"
 msgstr "Zweig löschen"
 
-#: ../editors/FileManagementPanel.py:157
+#: ../etherlab/ConfigEditor.py:1261 ../editors/FileManagementPanel.py:156
 msgid "Delete File"
 msgstr "Datei löschen"
 
-#: ../editors/Viewer.py:597
+#: ../editors/Viewer.py:600
 msgid "Delete Wire Segment"
 msgstr "Kabelabschnitt löschen"
 
@@ -1371,11 +1537,12 @@
 msgid "Derivation Type:"
 msgstr "Referenz:"
 
-#: ../editors/CodeFileEditor.py:735
+#: ../etherlab/ConfigEditor.py:346 ../etherlab/ConfigEditor.py:465
+#: ../editors/CodeFileEditor.py:754
 msgid "Description"
 msgstr "Beschreibung"
 
-#: ../controls/VariablePanel.py:463
+#: ../controls/VariablePanel.py:465
 msgid "Description:"
 msgstr "Beschreibung:"
 
@@ -1387,7 +1554,7 @@
 msgid "Direction"
 msgstr "Richtung"
 
-#: ../dialogs/BrowseLocationsDialog.py:102
+#: ../dialogs/BrowseLocationsDialog.py:101
 msgid "Direction:"
 msgstr "Richtung:"
 
@@ -1395,19 +1562,19 @@
 msgid "Directly"
 msgstr "Direkt"
 
-#: ../ProjectController.py:1855
+#: ../ProjectController.py:1938
 msgid "Disconnect"
 msgstr "Verbindung trennen"
 
-#: ../ProjectController.py:1856
+#: ../ProjectController.py:1939
 msgid "Disconnect from PLC"
 msgstr "Verbindung zu SPS trennen"
 
-#: ../ProjectController.py:1401
+#: ../runtime/PlcStatus.py:14
 msgid "Disconnected"
 msgstr "Getrennt"
 
-#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
+#: ../editors/Viewer.py:657 ../editors/Viewer.py:2438
 msgid "Divergence"
 msgstr "Verzweigung"
 
@@ -1415,7 +1582,7 @@
 msgid "Division"
 msgstr "Division"
 
-#: ../editors/FileManagementPanel.py:156
+#: ../etherlab/ConfigEditor.py:1260 ../editors/FileManagementPanel.py:155
 #, python-format
 msgid "Do you really want to delete the file '%s'?"
 msgstr "Möchten Sie die Datei '%s' wirklich löschen?"
@@ -1428,15 +1595,31 @@
 msgid "Done"
 msgstr "Fertig"
 
+#: ../runtime/WampClient.py:384
+msgid "Download"
+msgstr "Download"
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Duration"
 msgstr "Zeitangabe"
 
+#: ../bacnet/bacnet.py:437
+msgid "EDE files (*_EDE.csv)|*_EDE.csv|All files|*.*"
+msgstr ""
+
 #: ../canfestival/canfestival.py:174
 msgid "EDS files (*.eds)|*.eds|All files|*.*"
 msgstr "EDS Dateien (*.eds)|*.eds|Alle Dateien|*.*"
 
-#: ../editors/Viewer.py:668
+#: ../etherlab/ConfigEditor.py:1342
+msgid "ESI Files Database management"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1109
+msgid "ESI Files:"
+msgstr ""
+
+#: ../editors/Viewer.py:671
 msgid "Edit Block"
 msgstr "Funktionsblock bearbeiten"
 
@@ -1448,7 +1631,7 @@
 msgid "Edit Contact Values"
 msgstr "Kontaktwerte bearbeiten"
 
-#: ../dialogs/DurationEditorDialog.py:62
+#: ../dialogs/DurationEditorDialog.py:54
 msgid "Edit Duration"
 msgstr "Zeitangabe ändern"
 
@@ -1468,11 +1651,11 @@
 msgid "Edit array type properties"
 msgstr "Array-Typeigenschaften bearbeiten"
 
-#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
+#: ../dialogs/CommentEditDialog.py:53
 msgid "Edit comment"
 msgstr "Kommentar bearbeiten"
 
-#: ../editors/FileManagementPanel.py:69
+#: ../editors/FileManagementPanel.py:68
 msgid "Edit file"
 msgstr "Datei bearbeiten"
 
@@ -1480,11 +1663,11 @@
 msgid "Edit item"
 msgstr "Objekt bearbeiten"
 
-#: ../editors/Viewer.py:3059
+#: ../editors/Viewer.py:3058
 msgid "Edit jump target"
 msgstr "Sprungziel bearbeiten"
 
-#: ../ProjectController.py:1873
+#: ../ProjectController.py:1956
 msgid "Edit raw IEC code added to code generated by PLCGenerator"
 msgstr ""
 "Bearbeite hinzugefügten Roh-IEC Code, der vom PLCGenerator generiert wurde"
@@ -1497,11 +1680,11 @@
 msgid "Edit transition"
 msgstr "Transitionsbedingung bearbeiten"
 
-#: ../IDEFrame.py:632
+#: ../IDEFrame.py:638
 msgid "Editor ToolBar"
 msgstr "Werkzeugleiste bearbeiten"
 
-#: ../ProjectController.py:1294
+#: ../ProjectController.py:1355
 msgid "Editor selection"
 msgstr "Editor-Auswahl"
 
@@ -1509,7 +1692,7 @@
 msgid "Elements :"
 msgstr "Komponente:"
 
-#: ../ProjectController.py:1399
+#: ../runtime/PlcStatus.py:15
 msgid "Empty"
 msgstr "Leer"
 
@@ -1517,18 +1700,45 @@
 msgid "Empty dimension isn't allowed."
 msgstr "Leere Dimension ist nicht erlaubt."
 
-#: ../Beremiz_service.py:341
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Enable"
+msgstr "Aktivieren"
+
+#: ../runtime/WampClient.py:410
+msgid "Enable WAMP connection"
+msgstr ""
+
+#: ../Beremiz_service.py:354
 msgid "Enter a name "
 msgstr "Geben Sie einen Namen ein"
 
-#: ../Beremiz_service.py:326
+#: ../Beremiz_service.py:339
 msgid "Enter a port number "
 msgstr "Geben Sie eine Port-Nummer ein"
 
-#: ../Beremiz_service.py:317
+#: ../etherlab/EtherCATManagementEditor.py:627
+msgid ""
+"Enter hex or dec value (if enter dec value, it automatically conversed hex "
+"value)"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:1964
+msgid "Enter hex(0xnnnn) or dec(n) value"
+msgstr ""
+
+#: ../Beremiz_service.py:330
 msgid "Enter the IP of the interface to bind"
 msgstr "Geben Sie die IP-Adresse des anzubindenden Interfaces ein"
 
+#: ../etherlab/ConfigEditor.py:502
+msgid "Entry can't be write through SDO"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:569
+#, python-brace-format
+msgid "Entry index 0x{a1:.4x}, subindex 0x{a2:.2x} not mapped for device {a3}"
+msgstr ""
+
 #: ../editors/DataTypeEditor.py:60
 msgid "Enumerated"
 msgstr "Aufzählung"
@@ -1539,34 +1749,37 @@
 
 #: ../dialogs/ForceVariableDialog.py:213
 #: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
-#: ../dialogs/DurationEditorDialog.py:124
-#: ../dialogs/DurationEditorDialog.py:170
-#: ../dialogs/PouTransitionDialog.py:114 ../dialogs/BlockPreviewDialog.py:237
-#: ../dialogs/ProjectDialog.py:80 ../dialogs/ArrayTypeDialog.py:114
-#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/DurationEditorDialog.py:125
+#: ../dialogs/DurationEditorDialog.py:172
+#: ../dialogs/PouTransitionDialog.py:113 ../dialogs/BlockPreviewDialog.py:237
+#: ../dialogs/ProjectDialog.py:78 ../dialogs/ArrayTypeDialog.py:114
+#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:228
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
-#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:143
+#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:178
 #: ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
-#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
-#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
-#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
-#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
-#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
-#: ../ProjectController.py:391 ../ProjectController.py:531
-#: ../ProjectController.py:538 ../controls/FolderTree.py:222
-#: ../controls/ProjectPropertiesPanel.py:306
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
+#: ../etherlab/ConfigEditor.py:458 ../etherlab/ConfigEditor.py:510
+#: ../etherlab/ConfigEditor.py:981 ../etherlab/ConfigEditor.py:1047
+#: ../etherlab/ConfigEditor.py:1246 ../etherlab/ConfigEditor.py:1314
+#: ../etherlab/EthercatMaster.py:463 ../editors/ResourceEditor.py:468
+#: ../editors/Viewer.py:467 ../editors/LDViewer.py:677
+#: ../editors/LDViewer.py:893 ../editors/LDViewer.py:897
+#: ../editors/DataTypeEditor.py:566 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:590 ../editors/DataTypeEditor.py:759
+#: ../editors/DataTypeEditor.py:766 ../editors/TextViewer.py:390
+#: ../editors/CodeFileEditor.py:779 ../ProjectController.py:404
+#: ../ProjectController.py:548 ../ProjectController.py:557
+#: ../controls/FolderTree.py:222 ../controls/ProjectPropertiesPanel.py:308
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:163
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
-#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
-#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
-#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
-#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
+#: ../controls/VariablePanel.py:430 ../controls/VariablePanel.py:784
+#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1049 ../IDEFrame.py:1667
+#: ../IDEFrame.py:1708 ../IDEFrame.py:1713 ../IDEFrame.py:1727
+#: ../IDEFrame.py:1732 ../Beremiz_service.py:234
 msgid "Error"
 msgstr "Fehler"
 
-#: ../ProjectController.py:811
+#: ../ProjectController.py:848
 msgid ""
 "Error : At least one configuration and one resource must be declared in PLC "
 "!\n"
@@ -1574,12 +1787,12 @@
 "Fehler : Mindestens eine Konfiguration und eine Ressource müssen in der SPS "
 "deklariert sein!\n"
 
-#: ../ProjectController.py:803
+#: ../ProjectController.py:838
 #, python-format
 msgid "Error : IEC to C compiler returned %d\n"
 msgstr "Fehler : IEC nach C Compiler gab folgendes zurück: %d\n"
 
-#: ../ProjectController.py:731
+#: ../ProjectController.py:762
 #, python-format
 msgid ""
 "Error in ST/IL/SFC code generator :\n"
@@ -1593,7 +1806,21 @@
 msgid "Error while saving \"%s\"\n"
 msgstr "Fehler während der Speicherung von \"%s\"\n"
 
-#: ../canfestival/canfestival.py:179
+#: ../bacnet/bacnet.py:581
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x: {a2}' contains objects with duplicate object "
+"identifiers.\n"
+msgstr ""
+
+#: ../bacnet/bacnet.py:573
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x:{a2}' contains objects with duplicate object "
+"names.\n"
+msgstr ""
+
+#: ../canfestival/canfestival.py:179 ../bacnet/bacnet.py:444
 msgid "Error: Export slave failed\n"
 msgstr "Fehler: Slave Export fehlgeschlagen\n"
 
@@ -1612,7 +1839,23 @@
 msgid "Error: No PLC built\n"
 msgstr "Fehler: Kein SPS built\n"
 
-#: ../ProjectController.py:1708
+#: ../etherlab/ConfigEditor.py:269
+msgid "EtherCAT Management"
+msgstr ""
+
+#: ../features.py:20
+msgid "EtherCAT master"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:302
+msgid "Ethercat Slave Type"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:267
+msgid "Ethercat node"
+msgstr ""
+
+#: ../ProjectController.py:1791
 #, python-format
 msgid "Exception while connecting %s!\n"
 msgstr "Fehler beim verbinden von %s!\n"
@@ -1621,11 +1864,11 @@
 msgid "Execution Control:"
 msgstr "Ausführungssteuerung:"
 
-#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
+#: ../dialogs/FBDVariableDialog.py:85 ../dialogs/FBDBlockDialog.py:111
 msgid "Execution Order:"
 msgstr "Ausführungsreihenfolge:"
 
-#: ../features.py:36
+#: ../features.py:25
 msgid "Experimental web based HMI"
 msgstr "Experimentelle web-basierte HMI"
 
@@ -1637,44 +1880,48 @@
 msgid "Exponentiation"
 msgstr "Exponentialfunktion des Operanden"
 
+#: ../bacnet/bacnet.py:156
+msgid "Export BACnet slave to EDE file"
+msgstr ""
+
 #: ../canfestival/canfestival.py:186
 msgid "Export CanOpen slave to EDS file"
 msgstr "CanOpen-Slave in EDS-Datei exportieren"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
 msgid "Export graph values to clipboard"
 msgstr "Graphenwerte in Zwischenablage exportieren"
 
-#: ../canfestival/canfestival.py:185
+#: ../canfestival/canfestival.py:185 ../bacnet/bacnet.py:155
 msgid "Export slave"
 msgstr "Slave exportieren"
 
-#: ../dialogs/FBDVariableDialog.py:94
+#: ../dialogs/FBDVariableDialog.py:95
 msgid "Expression:"
 msgstr "Ausdruck:"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "External"
 msgstr "External"
 
-#: ../ProjectController.py:826
+#: ../ProjectController.py:866
 msgid "Extracting Located Variables...\n"
 msgstr "Extrahiere gefundene Variablen...\n"
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "FBD"
 msgstr "FUP"
 
-#: ../ProjectController.py:1773
+#: ../ProjectController.py:1855
 msgid "Failed : Must build before transfer.\n"
 msgstr "Fehler : Sie müssen kompillieren vor dem Transfer.\n"
 
-#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:559
 msgid "Falling Edge"
 msgstr "Fallende Flanke"
 
-#: ../ProjectController.py:1098
+#: ../ProjectController.py:1145
 msgid "Fatal : cannot get builder.\n"
 msgstr "schwerer Fehler : Kann den Builder nicht finden.\n"
 
@@ -1683,12 +1930,12 @@
 msgid "Fetching %s"
 msgstr "Lade %s"
 
-#: ../dialogs/DurationEditorDialog.py:167
+#: ../dialogs/DurationEditorDialog.py:169
 #, python-format
 msgid "Field %s hasn't a valid value!"
 msgstr "Das Feld %s enthält keinen gültigen Wert!"
 
-#: ../dialogs/DurationEditorDialog.py:169
+#: ../dialogs/DurationEditorDialog.py:171
 #, python-format
 msgid "Fields %s haven't a valid value!"
 msgstr "Die Felder %s enthalten keine gültigen Werte!"
@@ -1698,16 +1945,20 @@
 msgid "File '%s' already exists!"
 msgstr "Datei '%s' existiert bereits!"
 
+#: ../runtime/WampClient.py:407
+msgid "File containing secret for that ID"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
-#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
+#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:380
 msgid "Find"
 msgstr "Suchen"
 
-#: ../IDEFrame.py:379
+#: ../IDEFrame.py:382
 msgid "Find Next"
 msgstr "Weiter suchen"
 
-#: ../IDEFrame.py:381
+#: ../IDEFrame.py:384
 msgid "Find Previous"
 msgstr "Rückwärts suchen"
 
@@ -1719,7 +1970,7 @@
 msgid "Find:"
 msgstr "Suchen:"
 
-#: ../editors/Viewer.py:1633
+#: ../editors/Viewer.py:1635
 msgid "Force value"
 msgstr "Wert forcen"
 
@@ -1727,9 +1978,9 @@
 msgid "Forcing Variable Value"
 msgstr "Variable forcen"
 
-#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
-#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
-#: ../dialogs/PouDialog.py:125
+#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/ProjectDialog.py:77 ../dialogs/PouActionDialog.py:102
+#: ../dialogs/PouDialog.py:160
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr "Formular unvollständig. %s muss ausgefüllt werden!"
@@ -1747,20 +1998,24 @@
 msgid "Forward"
 msgstr "Vorwärts"
 
-#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
+#: ../IDEFrame.py:455
+msgid "Full screen"
+msgstr "Vollbild"
+
+#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1797
 msgid "Function"
 msgstr "Funktion"
 
-#: ../IDEFrame.py:354
+#: ../IDEFrame.py:357
 msgid "Function &Block"
 msgstr "Funktions&block"
 
-#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
-#: ../IDEFrame.py:1972
+#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1796
+#: ../IDEFrame.py:1989
 msgid "Function Block"
 msgstr "Funktionsblock"
 
-#: ../controls/VariablePanel.py:868
+#: ../controls/VariablePanel.py:879
 msgid "Function Block Types"
 msgstr "Funktionsblocktypen"
 
@@ -1785,19 +2040,19 @@
 msgid "Generate Program"
 msgstr "Programm generieren"
 
-#: ../ProjectController.py:722
+#: ../ProjectController.py:750
 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
 msgstr "Generiere SoftPLC IEC-61131 ST/AWL/AS Code...\n"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "Global"
 msgstr "Global"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
 msgid "Go to current value"
 msgstr "Zum aktuellen Wert wechseln"
 
-#: ../controls/ProjectPropertiesPanel.py:189
+#: ../controls/ProjectPropertiesPanel.py:192
 msgid "Graphics"
 msgstr "Grafiken"
 
@@ -1809,32 +2064,36 @@
 msgid "Greater than or equal to"
 msgstr "Größer oder gleich"
 
-#: ../controls/ProjectPropertiesPanel.py:149
+#: ../controls/ProjectPropertiesPanel.py:152
 msgid "Grid Resolution:"
 msgstr "Gitterauflösung:"
 
-#: ../runtime/NevowServer.py:192
+#: ../runtime/NevowServer.py:313
 msgid "HTTP interface port :"
 msgstr "HTTP interface port :"
 
-#: ../controls/ProjectPropertiesPanel.py:135
+#: ../controls/ProjectPropertiesPanel.py:138
 msgid "Height:"
 msgstr "Höhe:"
 
-#: ../editors/FileManagementPanel.py:89
+#: ../editors/FileManagementPanel.py:88
 msgid "Home Directory:"
 msgstr "Homeverzeichnis:"
 
-#: ../controls/ProjectPropertiesPanel.py:165
+#: ../controls/ProjectPropertiesPanel.py:168
 msgid "Horizontal:"
 msgstr "Horizontal:"
 
-#: ../dialogs/DurationEditorDialog.py:47
+#: ../dialogs/DurationEditorDialog.py:58
 msgid "Hours:"
 msgstr "Stunden:"
 
+#: ../runtime/WampClient.py:404
+msgid "ID"
+msgstr "ID"
+
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44
+#: ../dialogs/PouDialog.py:128
 msgid "IL"
 msgstr "AWL"
 
@@ -1842,52 +2101,66 @@
 msgid "IP"
 msgstr "IP"
 
-#: ../Beremiz_service.py:318 ../Beremiz_service.py:320
+#: ../Beremiz_service.py:331 ../Beremiz_service.py:333
 msgid "IP is not valid!"
 msgstr "IP ist nicht gültig!"
 
+#: ../etherlab/ConfigEditor.py:1387
+msgid "Import ESI file"
+msgstr "Importiere ESI Datei"
+
 #: ../svgui/svgui.py:50 ../svgui/svgui.py:51
 msgid "Import SVG"
 msgstr "Importiere SVG"
 
-#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
-#: ../controls/VariablePanel.py:89
+#: ../etherlab/ConfigEditor.py:1352
+msgid "Import file to ESI files database"
+msgstr "Importiere Datei zu ESI Datenbank"
+
+#: ../dialogs/FBDVariableDialog.py:64 ../editors/Viewer.py:1664
+#: ../controls/VariablePanel.py:86
 msgid "InOut"
 msgstr "Ein- und Ausgang"
 
-#: ../PLCGenerator.py:1040
+#: ../PLCGenerator.py:1089
 #, python-brace-format
 msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
 msgstr ""
-
-#: ../editors/Viewer.py:473
+"InOut Variable {a1} in Block {a2} in Programm {a3} muss angeschlossen "
+"werden."
+
+#: ../editors/Viewer.py:484
 msgid "Inactive"
 msgstr "Inaktiv"
 
-#: ../controls/VariablePanel.py:300
+#: ../controls/VariablePanel.py:299
 #, python-brace-format
 msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
 msgstr "Inkompatible Datentypen zwischen \"{a1}\" und \"{a2}\""
 
-#: ../controls/VariablePanel.py:306
+#: ../controls/VariablePanel.py:305
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr "Inkompatible Datengröße zwischen \"%s\" und \"BOOL\""
 
-#: ../controls/VariablePanel.py:310
+#: ../controls/VariablePanel.py:309
 #, python-brace-format
 msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
 msgstr "Inkompatible Datengröße zwischen \"{a1}\" und \"{a2}\""
 
+#: ../etherlab/ConfigEditor.py:48 ../etherlab/ConfigEditor.py:465
+msgid "Index"
+msgstr "Index"
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Indicator"
 msgstr "Indikator"
 
-#: ../editors/CodeFileEditor.py:734
+#: ../editors/CodeFileEditor.py:753
 msgid "Initial"
 msgstr "Anfangswert"
 
-#: ../editors/Viewer.py:650
+#: ../editors/Viewer.py:653
 msgid "Initial Step"
 msgstr "Anfangsschritt"
 
@@ -1900,6 +2173,14 @@
 msgid "Initial Value:"
 msgstr "Anfangswert:"
 
+#: ../etherlab/EthercatCIA402Slave.py:119
+msgid "Initiate Drag'n drop of Axis ref located variable"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:126
+msgid "Initiate Drag'n drop of Network position located variable"
+msgstr ""
+
 #: ../svgui/svgui.py:56
 msgid "Inkscape"
 msgstr "Inkscape"
@@ -1908,11 +2189,11 @@
 msgid "Inline"
 msgstr "Inline"
 
-#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
+#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:63
 #: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
-#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../editors/Viewer.py:1662 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:86
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Input"
 msgstr "Eingang"
 
@@ -1929,11 +2210,11 @@
 msgid "Instance with id %d doesn't exist!"
 msgstr "Eine Instanz mit der ID%d existiert nicht!"
 
-#: ../editors/ResourceEditor.py:279
+#: ../editors/ResourceEditor.py:277
 msgid "Instances:"
 msgstr "Instanzen:"
 
-#: ../controls/VariablePanel.py:88
+#: ../controls/VariablePanel.py:85
 msgid "Interface"
 msgstr "Schnittstelle"
 
@@ -1945,11 +2226,13 @@
 msgid "Interval"
 msgstr "Intervall"
 
-#: ../controls/ProjectPropertiesPanel.py:304
+#: ../controls/ProjectPropertiesPanel.py:306
 msgid ""
 "Invalid URL!\n"
 "Please enter correct URL address."
 msgstr ""
+"Ungültige URL!\n"
+"Bitte eine gültige URL Adresse eingeben."
 
 #: ../PLCControler.py:1895
 msgid "Invalid plcopen element(s)!!!"
@@ -1965,14 +2248,26 @@
 msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
 msgstr "Ungültiger Datentyp \"{a1}\" -> {a2}! = {a3} für die Adresse \"{a4}\""
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:129
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr "Ungültiger Wert \"%s\" für Debug-Variable"
 
-#: ../controls/VariablePanel.py:279 ../controls/VariablePanel.py:282
+#: ../etherlab/ConfigEditor.py:418 ../etherlab/ConfigEditor.py:421
+#: ../etherlab/ConfigEditor.py:452
+#, python-format
+msgid "Invalid value \"%s\" for process variable"
+msgstr "Ungültiger Wert \"%s\" für Prozess-Variable"
+
+#: ../etherlab/ConfigEditor.py:480 ../etherlab/ConfigEditor.py:483
+#: ../etherlab/ConfigEditor.py:504
+#, python-format
+msgid "Invalid value \"%s\" for startup command"
+msgstr "Ungültiger Wert \"%s\" für Startup Kommando"
+
+#: ../controls/VariablePanel.py:278 ../controls/VariablePanel.py:281
 #, python-format
 msgid "Invalid value \"%s\" for variable grid element"
 msgstr "Ungültiger Wert \"%s\" "
@@ -1987,7 +2282,12 @@
 msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
 msgstr "Ungültiger Wert \"{a1}\" für Variable \"{a2}\"!"
 
-#: ../dialogs/DurationEditorDialog.py:124
+#: ../etherlab/CommonEtherCATFunction.py:31
+#, python-format
+msgid "Invalid value for HexDecValue \"%s\""
+msgstr "Ungültiger Wert für HexDecValue\"%s\""
+
+#: ../dialogs/DurationEditorDialog.py:125
 msgid ""
 "Invalid value!\n"
 "You must fill a numeric value."
@@ -1997,14 +2297,14 @@
 
 #: ../connectors/WAMP/dialog.py:38
 msgid "Is connection secure?"
-msgstr ""
-
-#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
+msgstr "Ist die Verbindung sicher?"
+
+#: ../editors/Viewer.py:658 ../editors/Viewer.py:2427
 msgid "Jump"
 msgstr "Sprung"
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "LD"
 msgstr "KOP"
 
@@ -2013,33 +2313,33 @@
 msgid "Ladder element with id %d is on more than one rung."
 msgstr "KOP-Element mit id %d ist auf mehr als einem Netzwerk."
 
-#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
-#: ../dialogs/PouDialog.py:113
+#: ../dialogs/PouTransitionDialog.py:92 ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:148
 msgid "Language"
 msgstr "Sprache"
 
-#: ../controls/ProjectPropertiesPanel.py:206
+#: ../controls/ProjectPropertiesPanel.py:208
 msgid "Language (optional):"
 msgstr "Sprache (optional):"
 
-#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
-#: ../dialogs/PouDialog.py:81
+#: ../dialogs/PouTransitionDialog.py:66 ../dialogs/PouActionDialog.py:63
+#: ../dialogs/PouDialog.py:79
 msgid "Language:"
 msgstr "Sprache:"
 
-#: ../ProjectController.py:1779
+#: ../ProjectController.py:1861
 msgid "Latest build already matches current target. Transfering anyway...\n"
 msgstr "Letzter Build entspricht bereits dem Ziel. Übertrage trotzdem...\n"
 
-#: ../Beremiz_service.py:281
+#: ../Beremiz_service.py:294
 msgid "Launch WX GUI inspector"
 msgstr "Starte WX GUI Inspector"
 
-#: ../Beremiz_service.py:280
+#: ../Beremiz_service.py:293
 msgid "Launch a live Python shell"
 msgstr "Starte eine live-Python shell"
 
-#: ../editors/Viewer.py:580
+#: ../editors/Viewer.py:583
 msgid "Left"
 msgstr "Links"
 
@@ -2059,7 +2359,7 @@
 msgid "Less than or equal to"
 msgstr "Kleiner oder gleich"
 
-#: ../IDEFrame.py:652
+#: ../IDEFrame.py:658
 msgid "Library"
 msgstr "Bibliotheke"
 
@@ -2075,7 +2375,7 @@
 msgid "Linking :\n"
 msgstr "Linking :\n"
 
-#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
+#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:87
 msgid "Local"
 msgstr "Lokal"
 
@@ -2083,7 +2383,7 @@
 msgid "Local entries"
 msgstr "Lokale Einträge"
 
-#: ../ProjectController.py:1685
+#: ../ProjectController.py:1767
 msgid "Local service discovery failed!\n"
 msgstr "Lokale Service discovery fehlgeschlagen!\n"
 
@@ -2091,40 +2391,70 @@
 msgid "Location"
 msgstr "IEC-Adresse"
 
-#: ../dialogs/BrowseLocationsDialog.py:79
+#: ../dialogs/BrowseLocationsDialog.py:78
 msgid "Locations available:"
 msgstr "Verfügbare IEC-Adressen:"
 
+#: ../runtime/NevowServer.py:175
+msgid "Log message level"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:25
 msgid "Logarithm to base 10"
 msgstr "Logarithmus zur Basis 10"
 
-#: ../connectors/PYRO/__init__.py:102
+#: ../connectors/PYRO/__init__.py:103
 #, python-format
 msgid "MDNS resolution failure for '%s'\n"
 msgstr "MDNS-Auflösungsfehler für '%s'\n"
 
+#: ../etherlab/ConfigEditor.py:67
+msgid "Manufacturer Specific"
+msgstr "Hersteller Spezifisch"
+
 #: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
 msgid "Map Variable"
 msgstr "Map Variable"
 
-#: ../features.py:31
+#: ../features.py:19
+msgid "Map located variables over Bacnet"
+msgstr "Variablen über Bacnet mappen"
+
+#: ../features.py:18
 msgid "Map located variables over CANopen"
 msgstr "Variablen über CANopen mappen"
 
-#: ../features.py:32
+#: ../features.py:20
+msgid "Map located variables over EtherCAT"
+msgstr "Variablen über EtherCAT mappen"
+
+#: ../features.py:21
 msgid "Map located variables over Modbus"
-msgstr ""
+msgstr "Variablen über Modbus mappen"
 
 #: ../canfestival/NetworkEditor.py:113
 msgid "Master"
 msgstr "Master"
 
+#: ../etherlab/ConfigEditor.py:613
+msgid "Master State"
+msgstr "Master Status"
+
 #: ../ConfigTreeNode.py:544
 #, python-brace-format
 msgid "Max count ({a1}) reached for this confnode of type {a2} "
 msgstr "Maximale Anzahl ({a1}) ist erreicht für diesen confnode des Typs {a2}"
 
+#: ../etherlab/etherlab.py:173
+msgid "Max entries by PDO"
+msgstr ""
+
+#: ../etherlab/etherlab.py:176
+msgid ""
+"Maximal number of entries mapped in a PDO\n"
+"including empty entries used for PDO alignment"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:71
 msgid "Maximum"
 msgstr "Maximum"
@@ -2135,26 +2465,34 @@
 
 #: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
 #: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Memory"
 msgstr "Speicher"
 
-#: ../IDEFrame.py:617
+#: ../IDEFrame.py:623
 msgid "Menu ToolBar"
 msgstr "Menüleiste"
 
-#: ../dialogs/DurationEditorDialog.py:51
+#: ../runtime/NevowServer.py:176
+msgid "Message text"
+msgstr "Nachrichten Text"
+
+#: ../dialogs/DurationEditorDialog.py:62
 msgid "Microseconds:"
 msgstr "Mikrosekunden:"
 
-#: ../editors/Viewer.py:585
+#: ../editors/Viewer.py:588
 msgid "Middle"
 msgstr "Mitte"
 
-#: ../dialogs/DurationEditorDialog.py:50
+#: ../dialogs/DurationEditorDialog.py:61
 msgid "Milliseconds:"
 msgstr "Millisekunden:"
 
+#: ../etherlab/etherlab.py:167
+msgid "Minimal size in bits between 2 pdo entries"
+msgstr "Minimale Größe in Byte zwischen 2 PDO Einträgen"
+
 #: ../plcopen/iec_std.csv:72
 msgid "Minimum"
 msgstr "Minimum"
@@ -2163,23 +2501,36 @@
 msgid "Minimum:"
 msgstr "Minimum:"
 
-#: ../dialogs/DurationEditorDialog.py:48
+#: ../dialogs/DurationEditorDialog.py:59
 msgid "Minutes:"
 msgstr "Minuten:"
 
-#: ../controls/ProjectPropertiesPanel.py:231
+#: ../etherlab/etherlab.py:238 ../controls/ProjectPropertiesPanel.py:233
 msgid "Miscellaneous"
 msgstr "Sonstiges"
 
-#: ../features.py:32
+#: ../features.py:21
 msgid "Modbus support"
-msgstr ""
+msgstr "Modbus Unterstützung"
 
 #: ../dialogs/LDElementDialog.py:65
 msgid "Modifier:"
 msgstr "Modifikator:"
 
-#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
+#: ../etherlab/ConfigEditor.py:1313
+#, python-format
+msgid "Module %s must be an integer!"
+msgstr "Modul %s muss ein Integer sein!"
+
+#: ../etherlab/ConfigEditor.py:1376
+msgid "Modules Library"
+msgstr "Modul Bibliothek"
+
+#: ../etherlab/ConfigEditor.py:1145
+msgid "Modules library:"
+msgstr "Modul Bibliothek:"
+
+#: ../PLCGenerator.py:795 ../PLCGenerator.py:1318
 #, python-brace-format
 msgid ""
 "More than one connector found corresponding to \"{a1}\" continuation in "
@@ -2206,23 +2557,31 @@
 msgid "Move element up"
 msgstr "Komponent nach oben schieben"
 
-#: ../editors/ResourceEditor.py:286
+#: ../editors/ResourceEditor.py:284
 msgid "Move instance down"
 msgstr "Insanz nach unten schieben"
 
-#: ../editors/ResourceEditor.py:285
+#: ../editors/ResourceEditor.py:283
 msgid "Move instance up"
 msgstr "Instanz nach oben schieben"
 
-#: ../editors/ResourceEditor.py:255
+#: ../etherlab/ConfigEditor.py:655
+msgid "Move process variable down"
+msgstr "Prozess Variable nach unten verschieben"
+
+#: ../etherlab/ConfigEditor.py:654
+msgid "Move process variable up"
+msgstr "Prozess Variable nach oben verschieben"
+
+#: ../editors/ResourceEditor.py:253
 msgid "Move task down"
 msgstr "Verschieben Task nach unten"
 
-#: ../editors/ResourceEditor.py:254
+#: ../editors/ResourceEditor.py:252
 msgid "Move task up"
 msgstr "Verschieben Task nach oben"
 
-#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
+#: ../IDEFrame.py:253 ../IDEFrame.py:268 ../IDEFrame.py:298 ../IDEFrame.py:339
 msgid "Move the view"
 msgstr "Ansicht verschieben"
 
@@ -2230,14 +2589,28 @@
 msgid "Move up"
 msgstr "Verschieben nach oben"
 
-#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
+#: ../bacnet/BacnetSlaveEditor.py:814 ../editors/CodeFileEditor.py:675
+#: ../controls/VariablePanel.py:486
 msgid "Move variable down"
 msgstr "Verschieben Variable nach unten"
 
-#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
+#: ../bacnet/BacnetSlaveEditor.py:813 ../editors/CodeFileEditor.py:674
+#: ../controls/VariablePanel.py:485
 msgid "Move variable up"
 msgstr "Verschieben Variable nach oben"
 
+#: ../bacnet/BacnetSlaveEditor.py:941
+msgid "Multi-State Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:940
+msgid "Multi-State Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:939
+msgid "Multi-State Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:74
 msgid "Multiplexer (select 1 of N)"
 msgstr "Multiplexer (wähle 1 von N)"
@@ -2246,7 +2619,7 @@
 msgid "Multiplication"
 msgstr "Multiplikation"
 
-#: ../editors/FileManagementPanel.py:87
+#: ../editors/FileManagementPanel.py:86
 msgid "My Computer:"
 msgstr "Mein Rechner:"
 
@@ -2254,13 +2627,15 @@
 msgid "NAME"
 msgstr "NAME"
 
-#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
-#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
+#: ../etherlab/EtherCATManagementEditor.py:37 ../etherlab/ConfigEditor.py:48
+#: ../etherlab/ConfigEditor.py:343 ../etherlab/ConfigEditor.py:1167
+#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:94
+#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:751
 #: ../controls/VariablePanel.py:59
 msgid "Name"
 msgstr "Name"
 
-#: ../Beremiz_service.py:342
+#: ../Beremiz_service.py:355
 msgid "Name must not be null!"
 msgstr "Name darf nicht NULL sein!"
 
@@ -2273,15 +2648,19 @@
 msgid "Natural logarithm"
 msgstr "Natürlicher Logarithmus"
 
-#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
+#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:557
 msgid "Negated"
 msgstr "Negiert"
 
-#: ../Beremiz_service.py:610
+#: ../etherlab/ConfigEditor.py:612
+msgid "Network"
+msgstr "Netzwerk"
+
+#: ../Beremiz_service.py:620
 msgid "Nevow Web service failed. "
 msgstr "Nevow Web-Dienst fehlgeschlagen."
 
-#: ../Beremiz_service.py:580
+#: ../Beremiz_service.py:596
 msgid "Nevow/Athena import failed :"
 msgstr "Nevow/Athena-Import gescheitert :"
 
@@ -2294,20 +2673,29 @@
 msgid "New item"
 msgstr "Neuer Eintrag"
 
-#: ../editors/Viewer.py:553
+#: ../editors/Viewer.py:556
 msgid "No Modifier"
 msgstr "Kein Modifikator"
 
-#: ../ProjectController.py:1808
+#: ../ProjectController.py:1891
 msgid "No PLC to transfer (did build succeed ?)\n"
 msgstr "Keine SPS zu übertragen (war das Kompillieren erfolgreich ?)\n"
 
-#: ../PLCGenerator.py:1678
+#: ../etherlab/EthercatCFileGenerator.py:504
+#, python-format
+msgid "No Sync manager defined for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1727
 #, python-format
 msgid "No body defined in \"%s\" POU"
 msgstr "Baustein \"%s\" ist leer"
 
-#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
+#: ../etherlab/CommonEtherCATFunction.py:1581
+msgid "No connected slaves"
+msgstr "Kein Slave verbunden"
+
+#: ../PLCGenerator.py:816 ../PLCGenerator.py:1330
 #, python-brace-format
 msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
 msgstr "Kein Anschluss gefunden zu Fortsetzung \"{a1}\" im Baustein \"{a2}\""
@@ -2325,7 +2713,17 @@
 msgid "No informations found for \"%s\" block"
 msgstr "Keine Informationen für Block \"%s\" sind gefunden"
 
-#: ../PLCGenerator.py:1232
+#: ../etherlab/EthercatCFileGenerator.py:224
+#, python-format
+msgid "No informations found for device %s!"
+msgstr "Keine Informationen für Gerät %s gefunden!"
+
+#: ../etherlab/EthercatCFileGenerator.py:515
+#, python-format
+msgid "No more free PDO index available for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1281
 #, python-brace-format
 msgid ""
 "No output {a1} variable found in block {a2} in POU {a3}. Connection must be "
@@ -2338,11 +2736,21 @@
 msgid "No search results available."
 msgstr "Keine Suchergebnisse."
 
+#: ../etherlab/ConfigEditor.py:1029
+#, python-format
+msgid "No slave defined at position %d!"
+msgstr ""
+
 #: ../svgui/svgui.py:142
 #, python-format
 msgid "No such SVG file: %s\n"
 msgstr "Kein SVG-File namens: %s\n"
 
+#: ../etherlab/ConfigEditor.py:1245
+#, python-format
+msgid "No such XML file: %s\n"
+msgstr ""
+
 #: ../canfestival/config_utils.py:682
 #, python-brace-format
 msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
@@ -2353,15 +2761,33 @@
 msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
 msgstr "Kein Index/Subindex ({a1},{a2}) in ID : {a3} (Variable {a4})"
 
+#: ../etherlab/EthercatCFileGenerator.py:438
+#, python-format
+msgid "No sync manager available for %s pdo!"
+msgstr ""
+
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
 msgid "No valid value selected!"
 msgstr "Kein gültiger Wert ausgewählt!"
 
-#: ../PLCGenerator.py:1676
+#: ../PLCGenerator.py:1725
 #, python-format
 msgid "No variable defined in \"%s\" POU"
 msgstr "Keine Variable ist im Baustein \"%s\" definiert."
 
+#: ../etherlab/ConfigEditor.py:606
+#, python-format
+msgid "Node Position: %d"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:697
+msgid "Node filter:"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:717
+msgid "Nodes variables filter:"
+msgstr ""
+
 #: ../canfestival/config_utils.py:379
 #, python-brace-format
 msgid "Non existing node ID : {a1} (variable {a2})"
@@ -2385,6 +2811,10 @@
 msgid "Not equal to"
 msgstr "Ungleich"
 
+#: ../etherlab/EtherCATManagementEditor.py:361
+msgid "Now Uploading..."
+msgstr ""
+
 #: ../dialogs/SFCDivergenceDialog.py:91
 msgid "Number of sequences:"
 msgstr "Anzahl der Verzweigungen:"
@@ -2393,7 +2823,11 @@
 msgid "Numerical"
 msgstr "Numerisch"
 
-#: ../editors/CodeFileEditor.py:736
+#: ../bacnet/BacnetSlaveEditor.py:808
+msgid "Object Properties:"
+msgstr "Objekteigenschaften:"
+
+#: ../editors/CodeFileEditor.py:755
 msgid "OnChange"
 msgstr "Bei Änderung"
 
@@ -2410,7 +2844,7 @@
 msgid "Open Inkscape"
 msgstr "öffne Inkscape"
 
-#: ../version.py:86
+#: ../version.py:88
 msgid ""
 "Open Source framework for automation, implemented IEC 61131 IDE with "
 "constantly growing set of extensions and flexible PLC runtime."
@@ -2419,11 +2853,11 @@
 "Entwicklungsumgebung mit ständig wachsender Reihe von Erweiterungen und "
 "flexibler SPS-Runtime."
 
-#: ../ProjectController.py:1879
+#: ../ProjectController.py:1962
 msgid "Open a file explorer to manage project files"
 msgstr "Datei-Browser zum Verwalten der Projektdateien öffnen"
 
-#: ../wxglade_hmi/wxglade_hmi.py:161
+#: ../wxglade_hmi/wxglade_hmi.py:176
 msgid "Open wxGlade"
 msgstr "WxGlade öffnen"
 
@@ -2431,11 +2865,11 @@
 msgid "Option"
 msgstr "Option"
 
-#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
+#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:756
 msgid "Options"
 msgstr "Optionen"
 
-#: ../controls/ProjectPropertiesPanel.py:109
+#: ../controls/ProjectPropertiesPanel.py:111
 msgid "Organization (optional):"
 msgstr "Organisation (optional):"
 
@@ -2443,14 +2877,20 @@
 msgid "Other Profile"
 msgstr "Anderes Profil"
 
-#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:42
+#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:65
 #: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:333
-#: ../editors/Viewer.py:1661 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../editors/Viewer.py:1663 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:86
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Output"
 msgstr "Ausgang"
 
+#: ../etherlab/EthercatCFileGenerator.py:170
+#, python-brace-format
+msgid ""
+"Output variables can't be defined with different locations ({a1} and {a2})"
+msgstr ""
+
 #: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:91
 msgid "PDO Receive"
 msgstr "PDO Empfangen"
@@ -2459,26 +2899,39 @@
 msgid "PDO Transmit"
 msgstr "PDO Senden"
 
+#: ../etherlab/etherlab.py:164
+msgid "PDO alignment"
+msgstr ""
+
 #: ../targets/toolchain_gcc.py:174
 msgid "PLC :\n"
 msgstr "SPS :\n"
 
-#: ../BeremizIDE.py:383
+#: ../BeremizIDE.py:379
 msgid "PLC Log"
 msgstr "SPS-Protokoll"
 
-#: ../ProjectController.py:1082
+#: ../ProjectController.py:1129
 msgid "PLC code generation failed !\n"
 msgstr "SPS-Code-Erzeugung fehlgeschlagen !\n"
 
-#: ../Beremiz_service.py:305
+#: ../etherlab/EtherCATManagementEditor.py:250
+msgid "PLC is Not Started"
+msgstr "SPS ist nicht gestartet"
+
+#: ../Beremiz_service.py:318
 msgid "PLC is empty or already started."
 msgstr "SPS ist leer oder bereits gestartet."
 
-#: ../Beremiz_service.py:312
+#: ../Beremiz_service.py:325
 msgid "PLC is not started."
 msgstr "SPS ist nicht gestartet."
 
+#: ../etherlab/EtherCATManagementEditor.py:2160
+#: ../etherlab/CommonEtherCATFunction.py:1589
+msgid "PLC not connected!"
+msgstr "SPS nicht verbunden!"
+
 #: ../PLCOpenEditor.py:180 ../PLCOpenEditor.py:293
 #, python-brace-format
 msgid ""
@@ -2510,28 +2963,28 @@
 msgid "PORT"
 msgstr "PORT"
 
-#: ../dialogs/PouDialog.py:109
+#: ../dialogs/PouDialog.py:144
 msgid "POU Name"
 msgstr "Bausteinname"
 
-#: ../dialogs/PouDialog.py:66
+#: ../dialogs/PouDialog.py:64
 msgid "POU Name:"
 msgstr "Bausteinname:"
 
-#: ../dialogs/PouDialog.py:111
+#: ../dialogs/PouDialog.py:146
 msgid "POU Type"
 msgstr "Bausteintyp"
 
-#: ../dialogs/PouDialog.py:73
+#: ../dialogs/PouDialog.py:71
 msgid "POU Type:"
 msgstr "Bausteintyp:"
 
-#: ../connectors/PYRO/__init__.py:52
+#: ../connectors/PYRO/__init__.py:53
 #, python-format
 msgid "PYRO connecting to URI : %s\n"
 msgstr "PYRO Verbindung zu URI : %s\n"
 
-#: ../connectors/PYRO/__init__.py:68
+#: ../connectors/PYRO/__init__.py:69
 #, python-format
 msgid "PYRO using certificates in '%s' \n"
 msgstr "PYRO mit Zertifikaten aus '%s'\n"
@@ -2540,11 +2993,11 @@
 msgid "Page Setup"
 msgstr "Seitenformat"
 
-#: ../controls/ProjectPropertiesPanel.py:124
+#: ../controls/ProjectPropertiesPanel.py:127
 msgid "Page Size (optional):"
 msgstr "Seitengröße (optional):"
 
-#: ../IDEFrame.py:2640
+#: ../IDEFrame.py:2660
 #, python-format
 msgid "Page: %d"
 msgstr "Seite: %d"
@@ -2553,11 +3006,11 @@
 msgid "Parent instance"
 msgstr "Elterninstanz"
 
-#: ../editors/Viewer.py:696 ../IDEFrame.py:374 ../IDEFrame.py:428
+#: ../editors/Viewer.py:699 ../IDEFrame.py:377 ../IDEFrame.py:429
 msgid "Paste"
 msgstr "Einfügen"
 
-#: ../IDEFrame.py:1899
+#: ../IDEFrame.py:1916
 msgid "Paste POU"
 msgstr "Baustein einfügen"
 
@@ -2569,7 +3022,11 @@
 msgid "Pin number:"
 msgstr "Anschlussnummer:"
 
-#: ../editors/Viewer.py:2792 ../editors/Viewer.py:3060
+#: ../runtime/NevowServer.py:163
+msgid "Platform"
+msgstr ""
+
+#: ../editors/Viewer.py:2791 ../editors/Viewer.py:3059
 #: ../editors/SFCViewer.py:785
 msgid "Please choose a target"
 msgstr "Bitte wählen Sie ein Ziel"
@@ -2578,7 +3035,7 @@
 msgid "Please enter a block name"
 msgstr "Bitte geben Sie einen Blocknamen ein"
 
-#: ../editors/Viewer.py:2661 ../editors/Viewer.py:3103
+#: ../dialogs/CommentEditDialog.py:52
 msgid "Please enter comment text"
 msgstr "Bitte geben Sie einen Kommentartext ein"
 
@@ -2587,7 +3044,8 @@
 msgid "Please enter step name"
 msgstr "Bitte geben Sie einen Schrittnamen ein"
 
-#: ../dialogs/PouNameDialog.py:37 ../Beremiz_service.py:209
+#: ../dialogs/SFCStepNameDialog.py:37 ../dialogs/PouNameDialog.py:37
+#: ../Beremiz_service.py:222
 msgid "Please enter text"
 msgstr "Bitte geben Sie Text ein"
 
@@ -2596,15 +3054,19 @@
 msgid "Please enter value for a \"%s\" variable:"
 msgstr "Bitte geben Sie einen Wert für die Variable \"%s\" ein:"
 
-#: ../Beremiz_service.py:327
+#: ../Beremiz_service.py:340
 msgid "Port number must be 0 <= port <= 65535!"
 msgstr "Port Nummer darf folgenden Wertbereich haben: 0 <= port <= 65535!"
 
-#: ../Beremiz_service.py:327
+#: ../Beremiz_service.py:340
 msgid "Port number must be an integer!"
 msgstr "Port Nummer muß eine natürliche Zahl sein (Integer)!"
 
-#: ../editors/Viewer.py:633 ../editors/Viewer.py:2449
+#: ../etherlab/ConfigEditor.py:47 ../etherlab/ConfigEditor.py:465
+msgid "Position"
+msgstr ""
+
+#: ../editors/Viewer.py:636 ../editors/Viewer.py:2451
 msgid "Power Rail"
 msgstr "Stromleitung"
 
@@ -2625,7 +3087,7 @@
 msgid "Print"
 msgstr "Drucken"
 
-#: ../IDEFrame.py:1110
+#: ../IDEFrame.py:1123
 msgid "Print preview"
 msgstr "Druckvorschau"
 
@@ -2637,33 +3099,37 @@
 msgid "Priority:"
 msgstr "Priorität:"
 
-#: ../runtime/PLCObject.py:518
+#: ../runtime/PLCObject.py:523
 #, python-format
 msgid "Problem starting PLC : error %d"
 msgstr "Problem mit SPS-Start : Fehler %d"
 
-#: ../dialogs/ProjectDialog.py:63
+#: ../etherlab/ConfigEditor.py:647
+msgid "Process variables mapped between nodes:"
+msgstr ""
+
+#: ../dialogs/ProjectDialog.py:61
 msgid "Product Name"
 msgstr "Produktname"
 
-#: ../controls/ProjectPropertiesPanel.py:90
+#: ../controls/ProjectPropertiesPanel.py:91
 msgid "Product Name (required):"
 msgstr "Produktname (erforderlich):"
 
-#: ../controls/ProjectPropertiesPanel.py:92
+#: ../controls/ProjectPropertiesPanel.py:93
 msgid "Product Release (optional):"
 msgstr "Produkt-Release (optional):"
 
-#: ../dialogs/ProjectDialog.py:64
+#: ../dialogs/ProjectDialog.py:62
 msgid "Product Version"
 msgstr "Produktversion"
 
-#: ../controls/ProjectPropertiesPanel.py:91
+#: ../controls/ProjectPropertiesPanel.py:92
 msgid "Product Version (required):"
 msgstr "Produktversion (erforderlich):"
 
-#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1778
-#: ../IDEFrame.py:1975
+#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1795
+#: ../IDEFrame.py:1992
 msgid "Program"
 msgstr "Programm"
 
@@ -2679,7 +3145,7 @@
 msgid "Programs can't be used by other POUs!"
 msgstr "Programme können nicht von anderen Bausteinen verwendet werden!"
 
-#: ../controls/ProjectPropertiesPanel.py:94 ../IDEFrame.py:601
+#: ../controls/ProjectPropertiesPanel.py:95 ../IDEFrame.py:607
 msgid "Project"
 msgstr "Projekt"
 
@@ -2688,19 +3154,19 @@
 msgid "Project '%s':"
 msgstr "Projekt '%s':"
 
-#: ../ProjectController.py:1878
+#: ../ProjectController.py:1961
 msgid "Project Files"
 msgstr "Projektdateien"
 
-#: ../dialogs/ProjectDialog.py:62
+#: ../dialogs/ProjectDialog.py:60
 msgid "Project Name"
 msgstr "Projektname"
 
-#: ../controls/ProjectPropertiesPanel.py:88
+#: ../controls/ProjectPropertiesPanel.py:89
 msgid "Project Name (required):"
 msgstr "Projektname (erforderlich):"
 
-#: ../controls/ProjectPropertiesPanel.py:89
+#: ../controls/ProjectPropertiesPanel.py:90
 msgid "Project Version (optional):"
 msgstr "Projektversion (optional):"
 
@@ -2729,16 +3195,16 @@
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: ../Beremiz_service.py:427
+#: ../Beremiz_service.py:440
 msgid "Publishing service on local network"
 msgstr "Service im lokalen Netzwerk veröffentlichen"
 
-#: ../connectors/PYRO/__init__.py:126
+#: ../connectors/PYRO/__init__.py:127
 #, python-format
 msgid "Pyro exception: %s\n"
 msgstr "Pyroausnahme: %s\n"
 
-#: ../Beremiz_service.py:420
+#: ../Beremiz_service.py:433
 msgid "Pyro port :"
 msgstr "Pyro port :"
 
@@ -2746,7 +3212,7 @@
 msgid "Python code"
 msgstr "Python code"
 
-#: ../features.py:34
+#: ../features.py:23
 msgid "Python file"
 msgstr "Python Datei"
 
@@ -2754,19 +3220,23 @@
 msgid "Qualifier"
 msgstr "Qualifier"
 
-#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:283
+#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:296
 msgid "Quit"
 msgstr "Beenden"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:227
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:224
 msgid "Range:"
 msgstr "Bereich:"
 
-#: ../ProjectController.py:1872
+#: ../ProjectController.py:1955
 msgid "Raw IEC code"
 msgstr "Raw IEC code"
 
-#: ../BeremizIDE.py:1083
+#: ../etherlab/ConfigEditor.py:344
+msgid "Read from (nodeid, index, subindex)"
+msgstr ""
+
+#: ../BeremizIDE.py:1080
 #, python-format
 msgid "Really delete node '%s'?"
 msgstr "Knoten '%s' wirklich löschen?"
@@ -2775,7 +3245,7 @@
 msgid "Realm:"
 msgstr ""
 
-#: ../IDEFrame.py:367 ../IDEFrame.py:424
+#: ../IDEFrame.py:370 ../IDEFrame.py:425
 msgid "Redo"
 msgstr "Wiederherstellen"
 
@@ -2783,10 +3253,14 @@
 msgid "Reference"
 msgstr "Referenz"
 
-#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:434
+#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:436
 msgid "Refresh"
 msgstr "Refresh"
 
+#: ../etherlab/EtherCATManagementEditor.py:1965
+msgid "Register Modify Dialog"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:70
 msgid "Regular expression"
 msgstr "Regulärer Ausdruck"
@@ -2795,7 +3269,7 @@
 msgid "Regular expressions"
 msgstr "Reguläre Ausdrücke"
 
-#: ../editors/Viewer.py:1636
+#: ../editors/Viewer.py:1638
 msgid "Release value"
 msgstr "Forcen aufheben"
 
@@ -2803,16 +3277,16 @@
 msgid "Remainder (modulo)"
 msgstr "Rest (modulo)"
 
-#: ../BeremizIDE.py:1084
+#: ../BeremizIDE.py:1081
 #, python-format
 msgid "Remove %s node"
 msgstr "Knoten %s löschen"
 
-#: ../IDEFrame.py:2445
+#: ../IDEFrame.py:2463
 msgid "Remove Datatype"
 msgstr "Datentyp löschen"
 
-#: ../IDEFrame.py:2450
+#: ../IDEFrame.py:2468
 msgid "Remove Pou"
 msgstr "Baustein löschen"
 
@@ -2824,35 +3298,52 @@
 msgid "Remove element"
 msgstr "Komponent löschen"
 
-#: ../editors/FileManagementPanel.py:66
+#: ../etherlab/ConfigEditor.py:1353
+msgid "Remove file from database"
+msgstr ""
+
+#: ../editors/FileManagementPanel.py:65
 msgid "Remove file from left folder"
 msgstr "Entfernen Datei aus dem linken Ordner"
 
-#: ../editors/ResourceEditor.py:284
+#: ../etherlab/ConfigEditor.py:1389
+msgid "Remove file from library"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:282
 msgid "Remove instance"
 msgstr "Instanz löschen"
 
+#: ../etherlab/ConfigEditor.py:653
+msgid "Remove process variable"
+msgstr ""
+
 #: ../canfestival/NetworkEditor.py:111
 msgid "Remove slave"
 msgstr "Slave löschen"
 
-#: ../editors/ResourceEditor.py:253
+#: ../etherlab/ConfigEditor.py:680
+msgid "Remove startup service variable"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:251
 msgid "Remove task"
 msgstr "Task löschen"
 
-#: ../editors/CodeFileEditor.py:655 ../controls/VariablePanel.py:482
+#: ../bacnet/BacnetSlaveEditor.py:812 ../editors/CodeFileEditor.py:673
+#: ../controls/VariablePanel.py:484
 msgid "Remove variable"
 msgstr "Variable löschen"
 
-#: ../IDEFrame.py:1979
+#: ../IDEFrame.py:1996
 msgid "Rename"
 msgstr "Umbenennen"
 
-#: ../editors/FileManagementPanel.py:187
+#: ../editors/FileManagementPanel.py:186
 msgid "Replace File"
 msgstr "Datei ersetzen"
 
-#: ../editors/Viewer.py:598
+#: ../editors/Viewer.py:601
 msgid "Replace Wire by connections"
 msgstr "Kabel durch Verbindungen ersetzen"
 
@@ -2864,11 +3355,11 @@
 msgid "Reset"
 msgstr "Reset"
 
-#: ../editors/Viewer.py:681
+#: ../editors/Viewer.py:684
 msgid "Reset Execution Order"
 msgstr "Ausführungsreihenfolge zurücksetzen"
 
-#: ../IDEFrame.py:453
+#: ../IDEFrame.py:459
 msgid "Reset Perspective"
 msgstr "Perspektive zurücksetzen"
 
@@ -2876,7 +3367,7 @@
 msgid "Reset search result"
 msgstr "Suchergebniss säubern"
 
-#: ../BeremizIDE.py:1015 ../plcopen/types_enums.py:77
+#: ../BeremizIDE.py:1012 ../plcopen/types_enums.py:77
 msgid "Resources"
 msgstr "Ressourcen"
 
@@ -2884,11 +3375,11 @@
 msgid "Retain"
 msgstr "Retain"
 
-#: ../controls/VariablePanel.py:455
+#: ../controls/VariablePanel.py:457
 msgid "Return Type:"
 msgstr "Rückgabetyp:"
 
-#: ../editors/Viewer.py:582
+#: ../editors/Viewer.py:585
 msgid "Right"
 msgstr "Rechts"
 
@@ -2896,7 +3387,7 @@
 msgid "Right PowerRail"
 msgstr "Rechte Stromleitung"
 
-#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:555
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:558
 msgid "Rising Edge"
 msgstr "Steigende Flanke"
 
@@ -2912,15 +3403,15 @@
 msgid "Rounding up/down"
 msgstr "Auf-/Abrunden"
 
-#: ../ProjectController.py:1828
+#: ../ProjectController.py:1911
 msgid "Run"
 msgstr "Starte"
 
-#: ../ProjectController.py:1127
+#: ../ProjectController.py:1175
 msgid "Runtime IO extensions C code generation failed !\n"
 msgstr "C-Code-Erzeugung für Runtime IO-Erweiterungen fehlgeschlagen !\n"
 
-#: ../ProjectController.py:1136
+#: ../ProjectController.py:1186
 msgid "Runtime library extensions C code generation failed !\n"
 msgstr "C-Code-Erzeugung für Runtime Bibliothek fehlgeschlagen !\n"
 
@@ -2932,11 +3423,11 @@
 msgid "SDO Server"
 msgstr "SDO Server"
 
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "SFC"
 msgstr "AS"
 
-#: ../PLCGenerator.py:1433
+#: ../PLCGenerator.py:1482
 #, python-brace-format
 msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
 msgstr ""
@@ -2949,7 +3440,7 @@
 msgstr "AS Transition im Baustein \"%s\" muss angeschlossen sein."
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44
+#: ../dialogs/PouDialog.py:128
 msgid "ST"
 msgstr "ST"
 
@@ -2961,7 +3452,7 @@
 msgid "SVG files (*.svg)|*.svg|All files|*.*"
 msgstr "SVG Dateien (*.svg)|*.svg|Alle Dateien|*.*"
 
-#: ../features.py:36
+#: ../features.py:25
 msgid "SVGUI"
 msgstr "SVGUI"
 
@@ -2978,38 +3469,48 @@
 msgid "Save as"
 msgstr "Speichern unter"
 
-#: ../ProjectController.py:530
+#: ../etherlab/EtherCATManagementEditor.py:941
+#: ../etherlab/EtherCATManagementEditor.py:1289
+msgid "Save as..."
+msgstr "Speichern unter..."
+
+#: ../ProjectController.py:546
 msgid "Save path is the same as path of a project! \n"
 msgstr "Speicherpfad ist der gleiche, wie der Pfad von dem Projekt!\n"
 
+#: ../etherlab/EthercatMaster.py:455 ../etherlab/EthercatMaster.py:764
+#: ../etherlab/EthercatMaster.py:765
+msgid "Scan Network"
+msgstr "Netzwerk durchsuchen"
+
 #: ../dialogs/SearchInProjectDialog.py:73
 msgid "Scope"
 msgstr "Geltungsbereich"
 
-#: ../IDEFrame.py:644
+#: ../IDEFrame.py:650
 msgid "Search"
 msgstr "Suchen"
 
-#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:384
-#: ../IDEFrame.py:430
+#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:387
+#: ../IDEFrame.py:431
 msgid "Search in Project"
 msgstr "Im Projekt suchen "
 
-#: ../dialogs/DurationEditorDialog.py:49
+#: ../dialogs/DurationEditorDialog.py:60
 msgid "Seconds:"
 msgstr "Sekunden:"
 
-#: ../IDEFrame.py:390
+#: ../IDEFrame.py:393
 msgid "Select All"
 msgstr "Alles auswählen"
 
 #: ../editors/Viewer.py:331 ../editors/TextViewer.py:305
-#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:315
-#: ../controls/VariablePanel.py:378
+#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:314
+#: ../controls/VariablePanel.py:377
 msgid "Select a variable class:"
 msgstr "Wählen Sie eine Variablenklasse:"
 
-#: ../ProjectController.py:1293
+#: ../ProjectController.py:1354
 msgid "Select an editor:"
 msgstr "Wählen Sie einen Editor:"
 
@@ -3017,11 +3518,11 @@
 msgid "Select an instance"
 msgstr "Wählen Sie eine Instanz"
 
-#: ../IDEFrame.py:628
+#: ../IDEFrame.py:634
 msgid "Select an object"
 msgstr "Wählen Sie ein Objekt"
 
-#: ../ProjectController.py:537
+#: ../ProjectController.py:555
 msgid "Selected directory already contains another project. Overwrite? \n"
 msgstr ""
 "Das ausgewählte Verzeichnis enthält bereits ein Projekt. Überschreiben?\n"
@@ -3038,6 +3539,14 @@
 msgid "Selection Divergence"
 msgstr "Alternativanfang"
 
+#: ../runtime/NevowServer.py:182
+msgid "Send"
+msgstr "Senden"
+
+#: ../runtime/NevowServer.py:181
+msgid "Send a message to the log"
+msgstr ""
+
 #: ../dialogs/DiscoveryDialog.py:135
 msgid "Service Discovery"
 msgstr "Service Discovery"
@@ -3046,7 +3555,7 @@
 msgid "Services available:"
 msgstr "Service verfügbar:"
 
-#: ../dialogs/LDElementDialog.py:79
+#: ../dialogs/LDElementDialog.py:79 ../runtime/WampClient.py:434
 msgid "Set"
 msgstr "Menge"
 
@@ -3058,7 +3567,7 @@
 msgid "Shift right"
 msgstr "Bitweises Rechts-Shift eines Operanden"
 
-#: ../ProjectController.py:1863
+#: ../ProjectController.py:1946
 msgid "Show IEC code generated by PLCGenerator"
 msgstr "Zeige IEC Code, der vom PLCGenerator erzeugt wurde"
 
@@ -3070,7 +3579,7 @@
 msgid "Show Master generated by config_utils"
 msgstr "Zeige Master, der von den config_utils generiert wurde."
 
-#: ../ProjectController.py:1862
+#: ../ProjectController.py:1945
 msgid "Show code"
 msgstr "Zeige Code"
 
@@ -3090,6 +3599,14 @@
 msgid "Single"
 msgstr "Ereignis"
 
+#: ../etherlab/EtherCATManagementEditor.py:361
+msgid "Slave SDO Monitoring"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:135
+msgid "Slave entries"
+msgstr ""
+
 #: ../targets/toolchain_makefile.py:130
 msgid "Source didn't change, no build.\n"
 msgstr "Quellecode hat sich nicht verändert, Build ist nicht nötig.\n"
@@ -3111,44 +3628,56 @@
 msgid "Standard function blocks"
 msgstr "Standardfunktionsblock"
 
-#: ../ProjectController.py:1829 ../Beremiz_service.py:271
+#: ../etherlab/ConfigEditor.py:68
+msgid "Standardized Device Profile"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Start Address"
+msgstr "Start Adresse"
+
+#: ../ProjectController.py:1912 ../Beremiz_service.py:284
 msgid "Start PLC"
 msgstr "Starte SPS"
 
-#: ../ProjectController.py:1074
+#: ../ProjectController.py:1121
 #, python-format
 msgid "Start build in %s\n"
 msgstr "Zeige build in %s\n"
 
-#: ../ProjectController.py:1397
+#: ../runtime/PlcStatus.py:12
 msgid "Started"
 msgstr "Gestartet"
 
-#: ../ProjectController.py:1633
+#: ../ProjectController.py:1714
 msgid "Starting PLC\n"
 msgstr "starte SPS\n"
 
-#: ../BeremizIDE.py:393
+#: ../etherlab/ConfigEditor.py:674
+msgid "Startup service variables assignments:"
+msgstr ""
+
+#: ../BeremizIDE.py:389
 msgid "Status ToolBar"
 msgstr "Statusleiste"
 
-#: ../editors/Viewer.py:651 ../editors/Viewer.py:2424
+#: ../editors/Viewer.py:654 ../editors/Viewer.py:2426
 msgid "Step"
 msgstr "Schritt"
 
-#: ../ProjectController.py:1835
+#: ../ProjectController.py:1918
 msgid "Stop"
 msgstr "Stop"
 
-#: ../Beremiz_service.py:272
+#: ../Beremiz_service.py:285
 msgid "Stop PLC"
 msgstr "Stop SPS"
 
-#: ../ProjectController.py:1836
+#: ../ProjectController.py:1919
 msgid "Stop Running PLC"
 msgstr "Halte laufende SPS an"
 
-#: ../ProjectController.py:1398
+#: ../runtime/PlcStatus.py:13
 msgid "Stopped"
 msgstr "Gestoppt"
 
@@ -3156,6 +3685,14 @@
 msgid "Structure"
 msgstr "Struktur"
 
+#: ../etherlab/ConfigEditor.py:48
+msgid "SubIndex"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:465
+msgid "Subindex"
+msgstr ""
+
 #: ../editors/DataTypeEditor.py:60
 msgid "Subrange"
 msgstr "Unterbereichstyp"
@@ -3164,11 +3701,11 @@
 msgid "Subtraction"
 msgstr "Subtraktion"
 
-#: ../ProjectController.py:1113
+#: ../ProjectController.py:1160
 msgid "Successfully built.\n"
 msgstr "Erfolgreicher Build.\n"
 
-#: ../IDEFrame.py:449
+#: ../IDEFrame.py:451
 msgid "Switch perspective"
 msgstr "Perspektive wechseln"
 
@@ -3184,19 +3721,19 @@
 msgid "Tangent"
 msgstr "Tangente"
 
-#: ../editors/ResourceEditor.py:97
+#: ../editors/ResourceEditor.py:94
 msgid "Task"
 msgstr "Task"
 
-#: ../editors/ResourceEditor.py:248
+#: ../editors/ResourceEditor.py:246
 msgid "Tasks:"
 msgstr "Tasks:"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "Temp"
 msgstr "Temp"
 
-#: ../version.py:35
+#: ../version.py:37
 msgid ""
 "The best place to ask questions about Beremiz/PLCOpenEditor\n"
 "is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
@@ -3218,7 +3755,15 @@
 "Hier können Sie die Liste abonnieren:\n"
 "https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
 
-#: ../editors/FileManagementPanel.py:186
+#: ../etherlab/EthercatMaster.py:454
+msgid ""
+"The current network configuration will be deleted.\n"
+"Do you want to continue?"
+msgstr ""
+"Die aktuelle Netzwerkkonfiguration wird gelöscht.\n"
+"Wollen Sie fortsetzen?"
+
+#: ../editors/FileManagementPanel.py:185
 #, python-format
 msgid ""
 "The file '%s' already exist.\n"
@@ -3227,15 +3772,20 @@
 "Die Datei '%s' existiert bereits.\n"
 "Möchten Sie es ersetzen?"
 
+#: ../etherlab/EtherCATManagementEditor.py:928
+#: ../etherlab/EtherCATManagementEditor.py:1320
+msgid "The file does not exist!"
+msgstr "Die Datei existiert nicht!"
+
 #: ../editors/LDViewer.py:893
 msgid "The group of block must be coherent!"
 msgstr "Die Gruppe von Blöcken muss konsistent sein!"
 
-#: ../BeremizIDE.py:573 ../IDEFrame.py:1046
+#: ../BeremizIDE.py:569 ../IDEFrame.py:1059
 msgid "There are changes, do you want to save?"
 msgstr "Es wurden Änderungen gemacht, wollen Sie speichern?"
 
-#: ../IDEFrame.py:1691 ../IDEFrame.py:1710
+#: ../IDEFrame.py:1708 ../IDEFrame.py:1727
 #, python-format
 msgid ""
 "There is a POU named \"%s\". This could cause a conflict. Do you wish to "
@@ -3244,7 +3794,7 @@
 "Baustein mit dem Namen \"%s\" existiert bereits. Das könnte eine Kollision "
 "sein. Möchten Sie fortfahren?"
 
-#: ../IDEFrame.py:1133
+#: ../IDEFrame.py:1146
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -3256,7 +3806,7 @@
 msgid "This option isn't available yet!"
 msgstr "Diese Option is noch nicht verfügbar!"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:567
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:546
 #, python-format
 msgid "Tick: %d"
 msgstr "Takt: %d"
@@ -3294,36 +3844,40 @@
 msgid "Time-of-day subtraction"
 msgstr "Tageszeitsubstraktion"
 
+#: ../IDEFrame.py:432
+msgid "Toggle fullscreen mode"
+msgstr ""
+
 #: ../dialogs/ForceVariableDialog.py:188
 msgid "Toggle value"
 msgstr "Wert umschalten"
 
-#: ../editors/Viewer.py:584
+#: ../editors/Viewer.py:587
 msgid "Top"
 msgstr "Oben"
 
-#: ../ProjectController.py:1848
+#: ../ProjectController.py:1931
 msgid "Transfer"
 msgstr "Übertragen"
 
-#: ../ProjectController.py:1849
+#: ../ProjectController.py:1932
 msgid "Transfer PLC"
 msgstr "SPS übertragen"
 
-#: ../ProjectController.py:1802
+#: ../ProjectController.py:1884
 msgid "Transfer completed successfully.\n"
 msgstr "Übertragung erfolgreich beendet.\n"
 
-#: ../ProjectController.py:1805
+#: ../ProjectController.py:1887
 msgid "Transfer failed\n"
 msgstr "Übertragung gescheitert\n"
 
-#: ../editors/Viewer.py:652 ../editors/Viewer.py:2426
-#: ../editors/Viewer.py:2453
+#: ../editors/Viewer.py:655 ../editors/Viewer.py:2428
+#: ../editors/Viewer.py:2455
 msgid "Transition"
 msgstr "Transition"
 
-#: ../PLCGenerator.py:1564
+#: ../PLCGenerator.py:1613
 #, python-format
 msgid ""
 "Transition \"%s\" body must contain an output variable or coil referring to "
@@ -3332,22 +3886,22 @@
 "Transition \"%s\" muss eine Ausgangsvariable oder Spule enthalten, die sich "
 "auf seinen Namen bezieht"
 
-#: ../dialogs/PouTransitionDialog.py:91
+#: ../dialogs/PouTransitionDialog.py:90
 msgid "Transition Name"
 msgstr "Transitionsbedingungsname"
 
-#: ../dialogs/PouTransitionDialog.py:60
+#: ../dialogs/PouTransitionDialog.py:59
 msgid "Transition Name:"
 msgstr "Transitionsbedingungsname:"
 
-#: ../PLCGenerator.py:1657
+#: ../PLCGenerator.py:1706
 #, python-brace-format
 msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
 msgstr ""
 "Transition mit Inhalt \"{a1}\" im Baustein \"{a2}\" ist nicht mit dem "
 "nächsten Schritt verbunden"
 
-#: ../PLCGenerator.py:1646
+#: ../PLCGenerator.py:1695
 #, python-brace-format
 msgid ""
 "Transition with content \"{a1}\" not connected to a previous step in "
@@ -3373,17 +3927,17 @@
 msgid "Triggering"
 msgstr "Taskttyp"
 
-#: ../Beremiz_service.py:490
+#: ../Beremiz_service.py:503
 msgid "Twisted unavailable."
 msgstr "Twisted is nicht verfügbar."
 
-#: ../dialogs/ActionBlockDialog.py:42 ../editors/ResourceEditor.py:97
-#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:733
-#: ../controls/VariablePanel.py:61
+#: ../dialogs/ActionBlockDialog.py:42 ../etherlab/ConfigEditor.py:48
+#: ../editors/ResourceEditor.py:94 ../editors/DataTypeEditor.py:55
+#: ../editors/CodeFileEditor.py:752 ../controls/VariablePanel.py:61
 msgid "Type"
 msgstr "Typ"
 
-#: ../dialogs/BrowseLocationsDialog.py:54
+#: ../dialogs/BrowseLocationsDialog.py:51
 msgid "Type and derivated"
 msgstr "Datentyp und abgeleitete Datentypen"
 
@@ -3400,16 +3954,25 @@
 msgid "Type infos:"
 msgstr "Typinfo:"
 
-#: ../dialogs/BrowseLocationsDialog.py:55
+#: ../etherlab/EthercatCFileGenerator.py:76
+#, python-format
+msgid "Type of location \"%s\" not yet supported!"
+msgstr ""
+
+#: ../dialogs/BrowseLocationsDialog.py:52
 msgid "Type strict"
 msgstr "Nur Datentyp"
 
 #: ../dialogs/SFCDivergenceDialog.py:60 ../dialogs/SFCTransitionDialog.py:59
-#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:111
+#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:110
 #: ../dialogs/FBDBlockDialog.py:69 ../dialogs/ConnectionDialog.py:61
 msgid "Type:"
 msgstr "Typ:"
 
+#: ../runtime/WampClient.py:129
+msgid "TypeError register option: {}"
+msgstr ""
+
 #: ../connectors/PYRO/dialog.py:39 ../connectors/WAMP/dialog.py:42
 msgid "URI host:"
 msgstr ""
@@ -3432,7 +3995,17 @@
 msgid "Unable to get Xenomai's %s \n"
 msgstr " %s-Ermittlung für Xenomai fehlgeschlagen\n"
 
-#: ../PLCGenerator.py:974 ../PLCGenerator.py:1252
+#: ../bacnet/bacnet.py:430
+#, python-format
+msgid "Unable to load file \"%s\"!"
+msgstr ""
+
+#: ../bacnet/bacnet.py:420
+#, python-format
+msgid "Unable to save to file \"%s\"!"
+msgstr ""
+
+#: ../PLCGenerator.py:1023 ../PLCGenerator.py:1301
 #, python-brace-format
 msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
 msgstr "Undefinierter Bausteintyp \"{a1}\" im Baustein \"{a2}\""
@@ -3442,20 +4015,25 @@
 msgid "Undefined pou type \"%s\""
 msgstr "Undefinierter Bausteintyp \"%s\""
 
-#: ../IDEFrame.py:365 ../IDEFrame.py:423
+#: ../IDEFrame.py:368 ../IDEFrame.py:424
 msgid "Undo"
 msgstr "Rückgängig"
 
-#: ../ProjectController.py:442
+#: ../ProjectController.py:457
 msgid "Unknown"
 msgstr "Unbekannt"
 
+#: ../etherlab/EthercatCFileGenerator.py:470
+#, python-brace-format
+msgid "Unknown entry index 0x{a1:.4x}, subindex 0x{a2:.2x} for device {a3}"
+msgstr ""
+
 #: ../editors/Viewer.py:437
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr "Unbekannte Variable \"%s\" für diesen Baustein!"
 
-#: ../ProjectController.py:439 ../ProjectController.py:440
+#: ../ProjectController.py:454 ../ProjectController.py:455
 msgid "Unnamed"
 msgstr "Unbenannt"
 
@@ -3464,12 +4042,20 @@
 msgid "Unnamed%d"
 msgstr "Unbenannt%d"
 
-#: ../controls/VariablePanel.py:308
+#: ../controls/VariablePanel.py:307
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr "Nicht erkannte Datengröße \"%s\""
 
-#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:841
+#: ../etherlab/EtherCATManagementEditor.py:2080
+msgid "Update"
+msgstr ""
+
+#: ../runtime/WampClient.py:380
+msgid "Upload:"
+msgstr ""
+
+#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:852
 msgid "User Data Types"
 msgstr "Benutzerdefinierte Datentypen"
 
@@ -3481,7 +4067,7 @@
 msgid "User-defined POUs"
 msgstr "Benutzerbausteine"
 
-#: ../dialogs/ActionBlockDialog.py:42
+#: ../dialogs/ActionBlockDialog.py:42 ../etherlab/ConfigEditor.py:465
 msgid "Value"
 msgstr "Wert"
 
@@ -3489,24 +4075,29 @@
 msgid "Values:"
 msgstr "Werte:"
 
-#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:622
-#: ../editors/Viewer.py:2456
+#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:625
+#: ../editors/Viewer.py:2458
 msgid "Variable"
 msgstr "Variable"
 
 #: ../editors/Viewer.py:352 ../editors/Viewer.py:382 ../editors/Viewer.py:404
 #: ../editors/TextViewer.py:290 ../editors/TextViewer.py:344
-#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:355
+#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:354
 msgid "Variable Drop"
 msgstr "Variable Drop"
 
-#: ../dialogs/FBDVariableDialog.py:68
+#: ../etherlab/ConfigEditor.py:70
+#, python-format
+msgid "Variable Index: #x%4.4X"
+msgstr ""
+
+#: ../dialogs/FBDVariableDialog.py:58
 msgid "Variable Properties"
 msgstr "Variableneigenschaften"
 
 #: ../editors/Viewer.py:332 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:316
-#: ../controls/VariablePanel.py:379
+#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:315
+#: ../controls/VariablePanel.py:378
 msgid "Variable class"
 msgstr "Variablenklasse"
 
@@ -3514,24 +4105,28 @@
 msgid "Variable don't belong to this POU!"
 msgstr "Variable gehört nicht zu dieser POU!"
 
+#: ../etherlab/ConfigEditor.py:280
+msgid "Variable entries:"
+msgstr ""
+
 #: ../dialogs/LDElementDialog.py:92
 msgid "Variable:"
 msgstr "Variable:"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "Variables"
 msgstr "Variablen"
 
-#: ../controls/ProjectPropertiesPanel.py:166
+#: ../controls/ProjectPropertiesPanel.py:169
 msgid "Vertical:"
 msgstr "Vertikal:"
 
-#: ../runtime/WampClient.py:113
+#: ../runtime/WampClient.py:170
 #, python-format
 msgid "WAMP Client connection failed (%s) .. retrying .."
 msgstr ""
 
-#: ../runtime/WampClient.py:117
+#: ../runtime/WampClient.py:179
 #, python-format
 msgid "WAMP Client connection lost (%s) .. retrying .."
 msgstr ""
@@ -3540,49 +4135,66 @@
 msgid "WAMP ID:"
 msgstr ""
 
-#: ../runtime/WampClient.py:172
+#: ../runtime/WampClient.py:413
+msgid "WAMP Server URL"
+msgstr ""
+
+#: ../runtime/WampClient.py:276
+msgid "WAMP authentication has no secret configured"
+msgstr ""
+
+#: ../runtime/WampClient.py:304
+msgid "WAMP client can not connect to :"
+msgstr ""
+
+#: ../runtime/WampClient.py:301
 msgid "WAMP client connecting to :"
 msgstr ""
 
-#: ../runtime/WampClient.py:148
-msgid "WAMP client connection not established!"
-msgstr ""
-
-#: ../Beremiz_service.py:625
+#: ../Beremiz_service.py:628
 msgid "WAMP client startup failed. "
 msgstr "WAMP-Cliet-Start fehlgeschlagen."
 
-#: ../Beremiz_service.py:621
-msgid "WAMP config is incomplete."
-msgstr ""
-
-#: ../Beremiz_service.py:623
-msgid "WAMP config is missing."
-msgstr ""
-
-#: ../connectors/WAMP/__init__.py:99
+#: ../runtime/WampClient.py:206
+msgid "WAMP configuration error : missing '{}' parameter."
+msgstr ""
+
+#: ../runtime/WampClient.py:192
+msgid "WAMP configuration error:"
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:100
 #, python-format
 msgid "WAMP connecting to URL : %s\n"
 msgstr "WAMP Verbindung zu URL : %s\n"
 
-#: ../connectors/WAMP/__init__.py:140
+#: ../connectors/WAMP/__init__.py:141
 msgid "WAMP connection timeout"
 msgstr "WAMP Verbindungs-timeout"
 
-#: ../connectors/WAMP/__init__.py:158
+#: ../connectors/WAMP/__init__.py:159
 #, python-format
 msgid "WAMP connection to '%s' failed.\n"
 msgstr "WAMP Verbindung zu '%s' gescheitert.\n"
 
-#: ../Beremiz_service.py:595
+#: ../runtime/WampClient.py:280
+msgid "WAMP deactivated in configuration"
+msgstr ""
+
+#: ../Beremiz_service.py:605
 msgid "WAMP import failed :"
 msgstr "WAMP-Import fehlgeschlagen :"
 
-#: ../runtime/WampClient.py:126
-msgid "WAMP load error: "
-msgstr ""
-
-#: ../runtime/WampClient.py:108
+#: ../runtime/WampClient.py:241
+msgid "WAMP secret empty"
+msgstr ""
+
+#: ../runtime/WampClient.py:139
+#, python-format
+msgid "WAMP session joined (%s) by:"
+msgstr ""
+
+#: ../runtime/WampClient.py:146
 msgid "WAMP session left"
 msgstr ""
 
@@ -3590,15 +4202,26 @@
 msgid "WXGLADE GUI"
 msgstr "WXGLADE GUI"
 
-#: ../runtime/WampClient.py:137
-msgid "Wamp secret load error:"
-msgstr ""
-
-#: ../dialogs/PouDialog.py:137 ../editors/LDViewer.py:902
+#: ../runtime/WampClient.py:432
+msgid "Wamp Settings"
+msgstr ""
+
+#: ../dialogs/PouDialog.py:172 ../editors/LDViewer.py:902
 msgid "Warning"
 msgstr "Warnung"
 
-#: ../ProjectController.py:726
+#: ../etherlab/EthercatCFileGenerator.py:405
+#: ../etherlab/EthercatCFileGenerator.py:571
+msgid "Warning: "
+msgstr "Warnung:"
+
+#: ../wxglade_hmi/wxglade_hmi.py:166
+msgid ""
+"Warning: WxGlade HMI has no object with name identical to extension name, "
+"and no python code is provided in start section to create object.\n"
+msgstr ""
+
+#: ../ProjectController.py:756
 msgid "Warnings in ST/IL/SFC code generator :\n"
 msgstr "Warnungen im ST/IL/SFC Code Generator :\n"
 
@@ -3606,7 +4229,7 @@
 msgid "Whole Project"
 msgstr "Ganze Projekt"
 
-#: ../controls/ProjectPropertiesPanel.py:134
+#: ../controls/ProjectPropertiesPanel.py:137
 msgid "Width:"
 msgstr "Breite:"
 
@@ -3614,14 +4237,46 @@
 msgid "Wrap search"
 msgstr "Nach dem Ende zum Anfang"
 
+#: ../etherlab/ConfigEditor.py:345
+msgid "Write to (nodeid, index, subindex)"
+msgstr ""
+
 #: ../dialogs/AboutDialog.py:126
 msgid "Written by"
 msgstr "Geschrieben von"
 
-#: ../features.py:35
+#: ../etherlab/EthercatCFileGenerator.py:409
+#: ../etherlab/EthercatCFileGenerator.py:499
+#, python-format
+msgid "Wrong direction for location \"%s\"!"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:400
+#: ../etherlab/EthercatCFileGenerator.py:487
+#, python-format
+msgid "Wrong type for location \"%s\"!"
+msgstr ""
+
+#: ../features.py:24
 msgid "WxGlade GUI"
 msgstr "WxGlade GUI"
 
+#: ../etherlab/ConfigEditor.py:1236
+msgid "XML files (*.xml)|*.xml|All files|*.*"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:652
+msgid "You can input only hex, dec value"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:1999
+msgid "You can't modify it. This register is read-only or it's not connected."
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:648
+msgid "You cannot SDO download this state"
+msgstr ""
+
 #: ../svgui/svgui.py:150
 msgid ""
 "You don't have write permissions.\n"
@@ -3630,7 +4285,7 @@
 "Sie haben keine Schreibberechtigung.\n"
 "soll Inkscape trotzdem geöffnet werden ?"
 
-#: ../wxglade_hmi/wxglade_hmi.py:160
+#: ../wxglade_hmi/wxglade_hmi.py:175
 msgid ""
 "You don't have write permissions.\n"
 "Open wxGlade anyway ?"
@@ -3638,7 +4293,11 @@
 "Sie haben keine Schreibberechtigung.\n"
 "Soll wxGlade dennoch geöffnet werden ?"
 
-#: ../ProjectController.py:390
+#: ../etherlab/EtherCATManagementEditor.py:2002
+msgid "You entered wrong value. You can enter dec or hex value only."
+msgstr ""
+
+#: ../ProjectController.py:403
 msgid ""
 "You must have permission to work on the project\n"
 "Work on a project copy ?"
@@ -3667,11 +4326,21 @@
 msgid "You must type a value!"
 msgstr "Sie müssen einen Wert eingeben!"
 
-#: ../IDEFrame.py:440
+#: ../IDEFrame.py:442
 msgid "Zoom"
 msgstr "Zoom"
 
-#: ../dialogs/DurationEditorDialog.py:158
+#: ../etherlab/EtherCATManagementEditor.py:911
+#: ../etherlab/EtherCATManagementEditor.py:1307
+msgid "bin files (*.bin)|*.bin"
+msgstr "bin Dateien (*.bin)|*.bin"
+
+#: ../etherlab/EtherCATManagementEditor.py:942
+#: ../etherlab/EtherCATManagementEditor.py:1290
+msgid "bin files (*.bin)|*.bin|All files|*.*"
+msgstr "bin Dateien (*.bin)|*.bin|Alle Dateien|*.*"
+
+#: ../dialogs/DurationEditorDialog.py:159
 msgid "days"
 msgstr "Tage"
 
@@ -3685,35 +4354,39 @@
 msgid "exited with status {a1} (pid {a2})\n"
 msgstr "Beendet mit Status {a1} (pid {a2})\n"
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "function"
 msgstr "Funktion"
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "functionBlock"
 msgstr "Funktionsblock"
 
-#: ../dialogs/DurationEditorDialog.py:158
+#: ../dialogs/DurationEditorDialog.py:159
 msgid "hours"
 msgstr "Stunden"
 
-#: ../ProjectController.py:753
+#: ../ProjectController.py:784
 msgid "matiec installation is not found\n"
 msgstr "matiec ist nicht gefunden\n"
 
-#: ../dialogs/DurationEditorDialog.py:160
+#: ../dialogs/DurationEditorDialog.py:162
+msgid "microseconds"
+msgstr "Mikrosekunden"
+
+#: ../dialogs/DurationEditorDialog.py:161
 msgid "milliseconds"
 msgstr "Millisekunden"
 
-#: ../dialogs/DurationEditorDialog.py:159
+#: ../dialogs/DurationEditorDialog.py:160
 msgid "minutes"
 msgstr "Minuten"
 
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:110
 msgid "program"
 msgstr "Programm"
 
-#: ../dialogs/DurationEditorDialog.py:159
+#: ../dialogs/DurationEditorDialog.py:160
 msgid "seconds"
 msgstr "Sekunden"
 
@@ -3729,6 +4402,10 @@
 msgid "string right of"
 msgstr "Zeichen rechts von"
 
+#: ../etherlab/EtherCATManagementEditor.py:323
+msgid "update"
+msgstr ""
+
 #: ../Beremiz.py:167
 msgid "update info unavailable."
 msgstr "Updateinformation ist nicht verfügbar."
@@ -3783,6 +4460,33 @@
 msgid "CAN_Driver"
 msgstr "CAN Treiber"
 
+msgid "BACnetServerNode"
+msgstr ""
+
+msgid "Network_Interface"
+msgstr ""
+
+msgid "UDP_Port_Number"
+msgstr ""
+
+msgid "BACnet_Communication_Control_Password"
+msgstr ""
+
+msgid "BACnet_Device_ID"
+msgstr ""
+
+msgid "BACnet_Device_Name"
+msgstr ""
+
+msgid "BACnet_Device_Location"
+msgstr ""
+
+msgid "BACnet_Device_Description"
+msgstr ""
+
+msgid "BACnet_Device_Application_Software_Version"
+msgstr ""
+
 msgid "Generic"
 msgstr "Generic"
 
@@ -3817,7 +4521,7 @@
 msgstr ""
 
 msgid "SlaveID"
-msgstr ""
+msgstr "SlaveID"
 
 msgid "Nr_of_Channels"
 msgstr ""
@@ -3829,7 +4533,7 @@
 msgstr ""
 
 msgid "MemoryArea"
-msgstr ""
+msgstr "SpeicherBereich"
 
 msgid "MemoryAreaType"
 msgstr ""
@@ -3865,7 +4569,7 @@
 msgstr ""
 
 msgid "Parity"
-msgstr ""
+msgstr "Parität"
 
 msgid "Stop_Bits"
 msgstr ""
@@ -3879,6 +4583,24 @@
 msgid "MaxRemoteTCPclients"
 msgstr ""
 
+msgid "CIA402SlaveParams"
+msgstr ""
+
+msgid "Enable%s"
+msgstr "Aktiviere %s"
+
+msgid "ProcessVariables"
+msgstr "ProzessVariablen"
+
+msgid "variable"
+msgstr "Variable"
+
+msgid "ReadFrom"
+msgstr "LeseVon"
+
+msgid "WriteTo"
+msgstr "SchreibeZu"
+
 msgid "BaseParams"
 msgstr "BaseParams"
 
@@ -3909,9 +4631,6 @@
 msgid "variables"
 msgstr "Variablen"
 
-msgid "variable"
-msgstr "Variable"
-
 msgid "name"
 msgstr "Name"
 
--- a/i18n/Beremiz_es_ES.po	Mon Mar 11 09:18:58 2019 +0100
+++ b/i18n/Beremiz_es_ES.po	Mon Mar 11 13:51:07 2019 +0100
@@ -3,14 +3,21 @@
 # This file is distributed under the same license as the Beremiz package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# Nelson Mambre <nmambre@gmail.com>, 2017
+# Marcial González de Armas <mgacod@gmail.com>, 2017
+# Yegor Yefremov <yegorslists@googlemail.com>, 2018
+# Jorge Rojas <jorgerojasve@gmail.com>, 2018
+# Carlos Guilarte <guilartec@gmail.com>, 2019
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: Beremiz\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-06-15 16:39+0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Yegor Yefremov <yegorslists@googlemail.com>, 2018\n"
+"POT-Creation-Date: 2018-10-03 14:20+0300\n"
+"PO-Revision-Date: 2017-06-13 13:14+0000\n"
+"Last-Translator: Carlos Guilarte <guilartec@gmail.com>, 2019\n"
 "Language-Team: Spanish (Spain) (https://www.transifex.com/beremiz/teams/75746/es_ES/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -43,37 +50,46 @@
 "\n"
 "Rastreo:\n"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   External"
 msgstr "Externa"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   InOut"
 msgstr "EntradaSalida"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Input"
 msgstr "Entrada"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "   Local"
 msgstr "   Local"
 
-#: ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:86
 msgid "   Output"
 msgstr "Salida"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "   Temp"
 msgstr "Temporal"
 
-#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
-#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
+#: ../etherlab/etherlab.py:301
+#, python-format
+msgid " (rev. %s)"
+msgstr ""
+
+#: ../etherlab/CommonEtherCATFunction.py:1599
+msgid " Warning..."
+msgstr ""
+
+#: ../dialogs/PouTransitionDialog.py:100 ../dialogs/ProjectDialog.py:72
+#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:157
 #, python-format
 msgid " and %s"
 msgstr "y %s"
 
-#: ../ProjectController.py:1182
+#: ../ProjectController.py:1236
 msgid " generation failed !\n"
 msgstr "¡Generación fallida!\n"
 
@@ -97,7 +113,7 @@
 msgid "\"%s\" can't use itself!"
 msgstr "¡\"%s\" no puede usarse a sí mismo!"
 
-#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
+#: ../IDEFrame.py:1705 ../IDEFrame.py:1724
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr "¡La configuración \"%s\" ya existe!"
@@ -112,32 +128,32 @@
 msgid "\"%s\" configuration doesn't exist !!!"
 msgstr "¡La configuración %s no existe!"
 
-#: ../IDEFrame.py:1638
+#: ../IDEFrame.py:1655
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr "¡El tipo de dato \"%s\" ya existe!"
 
-#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
+#: ../dialogs/PouTransitionDialog.py:111 ../dialogs/BlockPreviewDialog.py:220
 #: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
 #: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
 #: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
-#: ../controls/VariablePanel.py:425
+#: ../controls/VariablePanel.py:424
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "¡Ya existe un elemento \"%s\" para este POU!"
 
-#: ../BeremizIDE.py:928
+#: ../BeremizIDE.py:925
 #, python-format
 msgid "\"%s\" folder is not a valid Beremiz project\n"
 msgstr "La carpeta \"%s\" no contiene un proyecto Beremiz válido\n"
 
-#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
+#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:107
 #: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
-#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
-#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
-#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
-#: ../IDEFrame.py:1629
+#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:164
+#: ../etherlab/ConfigEditor.py:973 ../editors/ResourceEditor.py:481
+#: ../editors/ResourceEditor.py:518 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:603 ../editors/CodeFileEditor.py:793
+#: ../controls/VariablePanel.py:798 ../IDEFrame.py:1646
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr "\"%s\" es una palabra reservada. ¡No puede ser usada!"
@@ -152,27 +168,28 @@
 msgid "\"%s\" is not a valid folder!"
 msgstr "¡\"%s\" no es una carpeta válida!"
 
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:105
 #: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
-#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
-#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
-#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
-#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
+#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:162
+#: ../etherlab/ConfigEditor.py:971 ../editors/ResourceEditor.py:479
+#: ../editors/ResourceEditor.py:516 ../editors/DataTypeEditor.py:601
+#: ../editors/CodeFileEditor.py:791 ../controls/VariablePanel.py:796
+#: ../IDEFrame.py:1644
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "¡\"%s\" no es un identificador válido!"
 
-#: ../IDEFrame.py:2436
+#: ../IDEFrame.py:2454
 #, python-format
 msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
 msgstr "\"%s\" es usado por uno o más POUs. ¿Deseas continuar?"
 
-#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
+#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:166
 #: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
 #: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
 #: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
-#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
-#: ../IDEFrame.py:1647
+#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:363
+#: ../IDEFrame.py:1664
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "\"%s\" POU ya existe!"
@@ -201,7 +218,7 @@
 "\"%s\" no es una dimensión válida para el array!\n"
 "El valor de la derecha debe ser mayor que el de la izquierda."
 
-#: ../PLCGenerator.py:1133
+#: ../PLCGenerator.py:1182
 #, python-brace-format
 msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
 msgstr ""
@@ -223,35 +240,35 @@
 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
 msgstr "\"{a1}\" el recurso no existe en la configuración \"{a2}\" !!!"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:559
 #, python-format
 msgid "%03gms"
 msgstr "%03gms"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:550
 #, python-format
 msgid "%dd"
 msgstr "%dd"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:189
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:551
 #, python-format
 msgid "%dh"
 msgstr "%dh"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:188
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:552
 #, python-format
 msgid "%dm"
 msgstr "%dm"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:186
 #, python-format
 msgid "%dms"
 msgstr "%dms"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:187
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:553
 #, python-format
 msgid "%ds"
 msgstr "%ds"
@@ -284,7 +301,12 @@
 msgid "%s body don't have text!"
 msgstr "%s El cuerpo no posee texto!"
 
-#: ../IDEFrame.py:388
+#: ../etherlab/ConfigEditor.py:856
+#, python-format
+msgid "%s's nodes"
+msgstr ""
+
+#: ../IDEFrame.py:391
 msgid "&Add Element"
 msgstr "&Añadir Elemento"
 
@@ -293,35 +315,35 @@
 msgid "&Close"
 msgstr "&Cerrar"
 
-#: ../IDEFrame.py:361
+#: ../IDEFrame.py:364
 msgid "&Configuration"
 msgstr "&Configuración"
 
-#: ../IDEFrame.py:350
+#: ../IDEFrame.py:353
 msgid "&Data Type"
 msgstr "&Tipo de Dato"
 
-#: ../IDEFrame.py:392
+#: ../IDEFrame.py:395
 msgid "&Delete"
 msgstr "&Eliminar"
 
-#: ../IDEFrame.py:342
+#: ../IDEFrame.py:345
 msgid "&Display"
 msgstr "&Mostrar"
 
-#: ../IDEFrame.py:341
+#: ../IDEFrame.py:344
 msgid "&Edit"
 msgstr "&Editar"
 
-#: ../IDEFrame.py:340
+#: ../IDEFrame.py:343
 msgid "&File"
 msgstr "&Archivo"
 
-#: ../IDEFrame.py:352
+#: ../IDEFrame.py:355
 msgid "&Function"
 msgstr "&Función"
 
-#: ../IDEFrame.py:343
+#: ../IDEFrame.py:346
 msgid "&Help"
 msgstr "&Ayuda"
 
@@ -329,7 +351,7 @@
 msgid "&License"
 msgstr "&Licencia"
 
-#: ../IDEFrame.py:356
+#: ../IDEFrame.py:359
 msgid "&Program"
 msgstr "&Programa"
 
@@ -341,10 +363,14 @@
 msgid "&Recent Projects"
 msgstr "&Proyectos Recientes"
 
-#: ../IDEFrame.py:358
+#: ../IDEFrame.py:361
 msgid "&Resource"
 msgstr "&Recursos"
 
+#: ../etherlab/ConfigEditor.py:450
+msgid "'Read from' and 'Write to' variables types are not compatible"
+msgstr ""
+
 #: ../controls/SearchResultPanel.py:247
 #, python-brace-format
 msgid "'{a1}' - {a2} match in project"
@@ -355,7 +381,7 @@
 msgid "'{a1}' - {a2} matches in project"
 msgstr "'{a1}' - {a2} coincidencias en el proyecto"
 
-#: ../connectors/PYRO/__init__.py:98
+#: ../connectors/PYRO/__init__.py:99
 #, python-brace-format
 msgid "'{a1}' is located at {a2}\n"
 msgstr "'{a1}' ubicado en {a2}\n"
@@ -365,8 +391,8 @@
 msgid "(%d matches)"
 msgstr "(%d coincidencias)"
 
-#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
-#: ../dialogs/PouDialog.py:124
+#: ../dialogs/PouTransitionDialog.py:102 ../dialogs/PouActionDialog.py:101
+#: ../dialogs/PouDialog.py:159
 #, python-format
 msgid ", %s"
 msgstr ", %s"
@@ -391,8 +417,8 @@
 msgid "1s"
 msgstr "1s"
 
-#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
-#: ../IDEFrame.py:1715
+#: ../dialogs/PouDialog.py:168 ../IDEFrame.py:1667 ../IDEFrame.py:1713
+#: ../IDEFrame.py:1732
 #, python-format
 msgid ""
 "A POU has an element named \"%s\". This could cause a conflict. Do you wish "
@@ -401,9 +427,9 @@
 "Un POU tiene un elemento llamado \"%s\". Esto puede causar conflicto. ¿Desea"
 " Continuar?"
 
-#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
+#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:109
 #: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
-#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
+#: ../controls/VariablePanel.py:800 ../IDEFrame.py:1681 ../IDEFrame.py:1694
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr "¡Ya existe un POU llamado \"%s\"!"
@@ -413,21 +439,21 @@
 msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
 msgstr "Hijo llamado \"{a1}\" ya existe -> \"{a2}\"\n"
 
-#: ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/BrowseLocationsDialog.py:228
 msgid "A location must be selected!"
 msgstr "¡Debe seleccionar una ubicación!"
 
-#: ../editors/ResourceEditor.py:485
+#: ../editors/ResourceEditor.py:483
 msgid "A task with the same name already exists!"
 msgstr "¡Ya existe una tarea con ese nombre!"
 
-#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
-#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
+#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:802
+#: ../IDEFrame.py:1683 ../IDEFrame.py:1696
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
 msgstr "¡Ya existe una variable llamada \"%s\" en este POU!"
 
-#: ../editors/CodeFileEditor.py:778
+#: ../editors/CodeFileEditor.py:797
 #, python-format
 msgid "A variable with \"%s\" as name already exists!"
 msgstr "¡Ya existe una variable llamada \"%s\"!"
@@ -440,11 +466,15 @@
 msgid "Absolute number"
 msgstr "Valor absoluto"
 
+#: ../etherlab/ConfigEditor.py:48
+msgid "Access"
+msgstr ""
+
 #: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
 msgid "Action"
 msgstr "Acción"
 
-#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
+#: ../editors/Viewer.py:656 ../editors/Viewer.py:2429
 msgid "Action Block"
 msgstr "Bloque de acción"
 
@@ -469,56 +499,64 @@
 msgid "Actions:"
 msgstr "Acciones:"
 
-#: ../editors/Viewer.py:473
+#: ../editors/Viewer.py:484
 msgid "Active"
 msgstr "Activo"
 
 #: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
-#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
+#: ../BeremizIDE.py:998 ../editors/Viewer.py:689
 msgid "Add"
 msgstr "Añadir"
 
-#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
+#: ../IDEFrame.py:1941 ../IDEFrame.py:1976
 msgid "Add Action"
 msgstr "Añadir Acción"
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "Add C code accessing located variables synchronously"
 msgstr "Agregue código C accediendo a las variables ubicadas sincrónicamente"
 
-#: ../IDEFrame.py:1907
+#: ../IDEFrame.py:1924
 msgid "Add Configuration"
 msgstr "Añadir Configuración"
 
-#: ../IDEFrame.py:1887
+#: ../IDEFrame.py:1904
 msgid "Add DataType"
 msgstr "Añadir Tipo de Dato"
 
-#: ../editors/Viewer.py:609
+#: ../editors/Viewer.py:612
 msgid "Add Divergence Branch"
 msgstr "Añadir Ramificación"
 
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:297
+msgid "Add Ethercat Slave to Master"
+msgstr ""
+
 #: ../dialogs/DiscoveryDialog.py:121
 msgid "Add IP"
 msgstr "Añadir IP"
 
-#: ../IDEFrame.py:1895
+#: ../IDEFrame.py:1912
 msgid "Add POU"
 msgstr "Añadir POU"
 
-#: ../features.py:34
+#: ../features.py:23
 msgid "Add Python code executed asynchronously"
 msgstr "Añadir Código Python ejecutado de forma asíncrona"
 
-#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
+#: ../IDEFrame.py:1952 ../IDEFrame.py:2002
 msgid "Add Resource"
 msgstr "Añadir un Recurso"
 
-#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
+#: ../IDEFrame.py:1930 ../IDEFrame.py:1973
 msgid "Add Transition"
 msgstr "Añadir Transición"
 
-#: ../editors/Viewer.py:596
+#: ../editors/Viewer.py:599
 msgid "Add Wire Segment"
 msgstr "Añadir Segmento de Cable"
 
@@ -526,7 +564,7 @@
 msgid "Add a new initial step"
 msgstr "Añadir un nuevo Paso Inicial"
 
-#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
+#: ../editors/Viewer.py:2790 ../editors/SFCViewer.py:784
 msgid "Add a new jump"
 msgstr "Añadir un nuevo Salto"
 
@@ -534,7 +572,7 @@
 msgid "Add a new step"
 msgstr "Añadir un nuevo Paso"
 
-#: ../features.py:35
+#: ../features.py:24
 msgid "Add a simple WxGlade based GUI."
 msgstr "Añadir una Interfaz de usuario simple basada en WxGlade"
 
@@ -546,22 +584,46 @@
 msgid "Add element"
 msgstr "Añadir Elemento"
 
-#: ../editors/ResourceEditor.py:283
+#: ../etherlab/ConfigEditor.py:1388
+msgid "Add file from ESI files database"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1360
+msgid "Add file to project"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:281
 msgid "Add instance"
 msgstr "Añadir Instancia"
 
+#: ../etherlab/ConfigEditor.py:652
+msgid "Add process variable"
+msgstr ""
+
 #: ../canfestival/NetworkEditor.py:110
 msgid "Add slave"
 msgstr "Añadir Esclavo"
 
-#: ../editors/ResourceEditor.py:252
+#: ../etherlab/ConfigEditor.py:679
+msgid "Add startup service variable"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:250
 msgid "Add task"
 msgstr "Añadir Tarea"
 
-#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
+#: ../bacnet/BacnetSlaveEditor.py:811 ../editors/CodeFileEditor.py:672
+#: ../controls/VariablePanel.py:483
 msgid "Add variable"
 msgstr "Añadir una Variable"
 
+#: ../etherlab/etherlab.py:186
+msgid ""
+"Adding a PDO not defined in default configuration\n"
+"for mapping needed location variables\n"
+"(1 if possible)"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:33
 msgid "Addition"
 msgstr "Suma"
@@ -570,27 +632,28 @@
 msgid "Additional function blocks"
 msgstr "Bloques adicionales"
 
-#: ../editors/Viewer.py:669
+#: ../editors/Viewer.py:672
 msgid "Adjust Block Size"
 msgstr "Ajustar el tamaño del bloque"
 
-#: ../editors/Viewer.py:1720
+#: ../editors/Viewer.py:1722
 msgid "Alignment"
 msgstr "Alineación"
 
 #: ../dialogs/BrowseLocationsDialog.py:42
-#: ../dialogs/BrowseLocationsDialog.py:53
-#: ../dialogs/BrowseLocationsDialog.py:152
-#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
-#: ../controls/VariablePanel.py:88
+#: ../dialogs/BrowseLocationsDialog.py:50
+#: ../dialogs/BrowseLocationsDialog.py:151
+#: ../dialogs/BrowseLocationsDialog.py:154 ../etherlab/ConfigEditor.py:65
+#: ../etherlab/ConfigEditor.py:853 ../controls/LogViewer.py:307
+#: ../controls/VariablePanel.py:85
 msgid "All"
 msgstr "Todo"
 
-#: ../editors/FileManagementPanel.py:37
+#: ../editors/FileManagementPanel.py:51
 msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
 msgstr "Todos los archivos (*.*)|*.*|Archivos CSV (*.csv)|*.csv"
 
-#: ../ProjectController.py:1670
+#: ../ProjectController.py:1752
 msgid "Already connected. Please disconnect\n"
 msgstr "Ya está conectado. Por favor desconecte\n"
 
@@ -603,6 +666,23 @@
 msgid "An instance with the same name already exists!"
 msgstr "¡Ya existe una instancia con este nombre!"
 
+#: ../etherlab/ConfigEditor.py:975
+#, python-format
+msgid "An variable named \"%s\" already exists!"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:935
+msgid "Analog Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:934
+msgid "Analog Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:933
+msgid "Analog Value Objects"
+msgstr ""
+
 #: ../dialogs/ConnectionDialog.py:103
 msgid "Apply name modification to all continuations with the same name"
 msgstr ""
@@ -625,7 +705,7 @@
 msgstr "Aritméticos"
 
 #: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
-#: ../controls/VariablePanel.py:872
+#: ../controls/VariablePanel.py:883
 msgid "Array"
 msgstr "Arreglo"
 
@@ -633,22 +713,34 @@
 msgid "Assignment"
 msgstr "Asignación"
 
-#: ../dialogs/FBDVariableDialog.py:226
+#: ../dialogs/FBDVariableDialog.py:227
 msgid "At least a variable or an expression must be selected!"
 msgstr "¡Debe seleccionar al menos una variable o expresión!"
 
-#: ../controls/ProjectPropertiesPanel.py:111
+#: ../controls/ProjectPropertiesPanel.py:113
 msgid "Author"
 msgstr "Autor"
 
-#: ../controls/ProjectPropertiesPanel.py:108
+#: ../controls/ProjectPropertiesPanel.py:110
 msgid "Author Name (optional):"
 msgstr "Nombre del autor (opcional):"
 
+#: ../etherlab/EthercatCIA402Slave.py:125
+msgid "Axis Pos"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:118
+msgid "Axis Ref"
+msgstr ""
+
 #: ../dialogs/FindInPouDialog.py:80
 msgid "Backward"
 msgstr "Hacia atrás"
 
+#: ../features.py:19
+msgid "Bacnet support"
+msgstr ""
+
 #: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
 #, python-format
 msgid "Bad location size : %s"
@@ -659,14 +751,30 @@
 msgid "Base Type:"
 msgstr "Tipo base:"
 
-#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
+#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:841
 msgid "Base Types"
 msgstr "Tipos base"
 
-#: ../BeremizIDE.py:483
+#: ../BeremizIDE.py:479
 msgid "Beremiz"
 msgstr "Beremiz"
 
+#: ../runtime/NevowServer.py:201
+msgid "Beremiz Runtime Settings"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:938
+msgid "Binary Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:937
+msgid "Binary Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:936
+msgid "Binary Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:70
 msgid "Binary selection (1 of 2)"
 msgstr "Selección binaria (1 de 2)"
@@ -695,7 +803,7 @@
 msgid "Bitwise inverting"
 msgstr "Inversión a nivel de bits"
 
-#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
+#: ../editors/Viewer.py:624 ../editors/Viewer.py:2442
 msgid "Block"
 msgstr "Bloque"
 
@@ -707,11 +815,11 @@
 msgid "Block name"
 msgstr "Nombre del bloque"
 
-#: ../editors/Viewer.py:586
+#: ../editors/Viewer.py:589
 msgid "Bottom"
 msgstr "Fondo"
 
-#: ../ProjectController.py:1400
+#: ../runtime/PlcStatus.py:11
 msgid "Broken"
 msgstr "Roto"
 
@@ -720,27 +828,27 @@
 msgid "Browse %s values library"
 msgstr "Navegar en la biblioteca de valores %s"
 
-#: ../dialogs/BrowseLocationsDialog.py:72
+#: ../dialogs/BrowseLocationsDialog.py:69
 msgid "Browse Locations"
 msgstr "Buscar ubicación"
 
-#: ../ProjectController.py:1815
+#: ../ProjectController.py:1898
 msgid "Build"
 msgstr "Construir"
 
-#: ../ProjectController.py:1335
+#: ../ProjectController.py:1397
 msgid "Build directory already clean\n"
 msgstr "El directorio de contrucción ya esta vacío\n"
 
-#: ../ProjectController.py:1816
+#: ../ProjectController.py:1899
 msgid "Build project into build folder"
 msgstr "Construir el proyecto en el directorio de contrución"
 
-#: ../ProjectController.py:1108
+#: ../ProjectController.py:1155
 msgid "C Build crashed !\n"
 msgstr "¡La construccion en lenguaje C falló!\n"
 
-#: ../ProjectController.py:1105
+#: ../ProjectController.py:1152
 msgid "C Build failed.\n"
 msgstr "La construccion en lenguaje C falló.\n"
 
@@ -748,7 +856,7 @@
 msgid "C code"
 msgstr "Código C"
 
-#: ../ProjectController.py:1186
+#: ../ProjectController.py:1240
 msgid "C code generated successfully.\n"
 msgstr "El código C fué generado con éxito.\n"
 
@@ -761,7 +869,7 @@
 msgid "C compilation of %s failed.\n"
 msgstr "Falló la compilación C de %s.\n"
 
-#: ../features.py:33
+#: ../features.py:22
 msgid "C extension"
 msgstr "Extensión lenguaje C"
 
@@ -777,16 +885,20 @@
 msgid "CANOpen slave"
 msgstr "Esclavo CANOpen"
 
-#: ../features.py:31
+#: ../features.py:18
 msgid "CANopen support"
 msgstr "Soporte CANOpen"
 
+#: ../etherlab/ConfigEditor.py:858
+msgid "CIA402 nodes"
+msgstr ""
+
 #: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
 #: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
 msgid "Can only generate execution order on FBD networks!"
 msgstr "¡Solo puede generar orden de ejecución en redes FBD!"
 
-#: ../controls/VariablePanel.py:291
+#: ../controls/VariablePanel.py:290
 msgid "Can only give a location to local or global variables"
 msgstr "Solo puede dar una ubicación a variables locales globales "
 
@@ -795,7 +907,7 @@
 msgid "Can't generate program to file %s!"
 msgstr "¡No se puede generar el programa para el archivo %s! "
 
-#: ../controls/VariablePanel.py:289
+#: ../controls/VariablePanel.py:288
 msgid "Can't give a location to a function block instance"
 msgstr "¡No se puede dar una ubicación a una instacia de bloque de funciones!"
 
@@ -804,7 +916,7 @@
 msgid "Can't save project to file %s!"
 msgstr "¡No se puede salvar el proyecto en el archivo %s!"
 
-#: ../controls/VariablePanel.py:339
+#: ../controls/VariablePanel.py:338
 msgid "Can't set an initial value to a function block instance"
 msgstr ""
 "No se puede asignar un valor inicial a una instancia de bloque de funcion"
@@ -819,11 +931,11 @@
 msgid "Cannot find lower free IEC channel than %d\n"
 msgstr "No se puede encontrar un canal IEC libre menor a %d\n"
 
-#: ../connectors/PYRO/__init__.py:139
+#: ../connectors/PYRO/__init__.py:140
 msgid "Cannot get PLC status - connection failed.\n"
 msgstr "Falla de conexión - No puedo obtener el estado del PLC\n"
 
-#: ../ProjectController.py:967
+#: ../ProjectController.py:1013
 msgid "Cannot open/parse VARIABLES.csv!\n"
 msgstr "¡No puedo abrir o analizar VARIABLES.csv!\n"
 
@@ -836,7 +948,7 @@
 "No se puede asignar el offset de bits para la variable no booleana '{a1}' "
 "(ID:{a2},Idx:{a3},sIdx:{a4}))"
 
-#: ../ProjectController.py:1761
+#: ../ProjectController.py:1842
 msgid "Cannot transfer while PLC is running. Stop it now?"
 msgstr ""
 "¡No se puede transferir mientras el PLC se esta ejecutando! ¿Desea detenerlo"
@@ -846,27 +958,27 @@
 msgid "Case sensitive"
 msgstr "Distingue entre mayúsculas y minúsculas"
 
-#: ../editors/Viewer.py:581
+#: ../editors/Viewer.py:584
 msgid "Center"
 msgstr "Centrar"
 
-#: ../Beremiz_service.py:276
+#: ../Beremiz_service.py:289
 msgid "Change IP of interface to bind"
 msgstr "Cambiar la IP de la interfaz para enlazar"
 
-#: ../Beremiz_service.py:275
+#: ../Beremiz_service.py:288
 msgid "Change Name"
 msgstr "Cambiar Nombre"
 
-#: ../IDEFrame.py:1977
+#: ../IDEFrame.py:1994
 msgid "Change POU Type To"
 msgstr "Cambiar el tipo de POU a"
 
-#: ../Beremiz_service.py:277
+#: ../Beremiz_service.py:290
 msgid "Change Port Number"
 msgstr "Cambiar el Número de Puerto"
 
-#: ../Beremiz_service.py:278
+#: ../Beremiz_service.py:291
 msgid "Change working directory"
 msgstr "Cambiar el directorio de trabajo"
 
@@ -878,16 +990,21 @@
 msgid "Choose a SVG file"
 msgstr "Elegir un archivo SVG"
 
-#: ../ProjectController.py:561
+#: ../etherlab/EtherCATManagementEditor.py:911
+#: ../etherlab/EtherCATManagementEditor.py:1306
+msgid "Choose a binary file"
+msgstr ""
+
+#: ../ProjectController.py:582
 msgid "Choose a directory to save project"
 msgstr "Elija un directorio para salvar el projecto"
 
-#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
-#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
+#: ../canfestival/canfestival.py:171 ../bacnet/bacnet.py:434
+#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
 msgid "Choose a file"
 msgstr "Elija un archivo"
 
-#: ../BeremizIDE.py:900
+#: ../BeremizIDE.py:897
 msgid "Choose a project"
 msgstr "Elija un archivo"
 
@@ -896,21 +1013,25 @@
 msgid "Choose a value for %s:"
 msgstr "Elija un valor para %s:"
 
-#: ../Beremiz_service.py:333
+#: ../Beremiz_service.py:346
 msgid "Choose a working directory "
 msgstr "Elija un directorio de trabajo"
 
-#: ../BeremizIDE.py:864
+#: ../etherlab/ConfigEditor.py:1234
+msgid "Choose an XML file"
+msgstr ""
+
+#: ../BeremizIDE.py:861
 msgid "Choose an empty directory for new project"
 msgstr "Elija un directorio vacío para el nuevo proyecto"
 
-#: ../ProjectController.py:468
+#: ../ProjectController.py:483
 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
 msgstr ""
 "El directorio seleccionado no contiene un programa. ¡No es un proyecto "
 "válido!"
 
-#: ../ProjectController.py:435
+#: ../ProjectController.py:450
 msgid "Chosen folder isn't empty. You can't use it for a new project!"
 msgstr ""
 "El directorio seleccionado no esta vacío. ¡No puede ser usado para un "
@@ -920,15 +1041,15 @@
 msgid "Class"
 msgstr "Clase"
 
-#: ../controls/VariablePanel.py:472
+#: ../controls/VariablePanel.py:474
 msgid "Class Filter:"
 msgstr "Filtro de clase:"
 
-#: ../dialogs/FBDVariableDialog.py:74
+#: ../dialogs/FBDVariableDialog.py:75
 msgid "Class:"
 msgstr "Clase:"
 
-#: ../ProjectController.py:1821
+#: ../ProjectController.py:1904
 msgid "Clean"
 msgstr "Limpiar"
 
@@ -936,32 +1057,33 @@
 msgid "Clean log messages"
 msgstr "Limpiar el registro de mensajes"
 
-#: ../ProjectController.py:1822
+#: ../ProjectController.py:1905
 msgid "Clean project build folder"
 msgstr "Limpiar la carpeta de construcción del proyecto"
 
-#: ../ProjectController.py:1332
+#: ../ProjectController.py:1394
 msgid "Cleaning the build directory\n"
 msgstr "Limpiando el directorio de construcción\n"
 
-#: ../IDEFrame.py:437
+#: ../IDEFrame.py:439
 msgid "Clear Errors"
 msgstr "Borrar errores"
 
-#: ../editors/Viewer.py:680
+#: ../editors/Viewer.py:683
 msgid "Clear Execution Order"
 msgstr "Borrar el Orden de Ejecusión"
 
 #: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
+#: ../etherlab/ConfigEditor.py:1361
 msgid "Close"
 msgstr "Cerrar"
 
-#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
+#: ../BeremizIDE.py:623 ../PLCOpenEditor.py:183
 msgid "Close Application"
 msgstr "Cerrar Aplicación"
 
-#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
-#: ../IDEFrame.py:1040
+#: ../BeremizIDE.py:253 ../BeremizIDE.py:562 ../PLCOpenEditor.py:81
+#: ../IDEFrame.py:1053
 msgid "Close Project"
 msgstr "Cerrar Proyecto"
 
@@ -969,28 +1091,32 @@
 msgid "Close Tab"
 msgstr "Cerrar Pestaña"
 
-#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
+#: ../editors/Viewer.py:641 ../editors/Viewer.py:2450
 msgid "Coil"
 msgstr "Bobina"
 
-#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
+#: ../editors/Viewer.py:662 ../editors/LDViewer.py:517
 msgid "Comment"
 msgstr "Comentario"
 
+#: ../etherlab/ConfigEditor.py:66
+msgid "Communication Parameters"
+msgstr ""
+
 #: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
 #: ../PLCOpenEditor.py:138
 msgid "Community support"
 msgstr "Soporte de la comunidad"
 
-#: ../dialogs/ProjectDialog.py:65
+#: ../dialogs/ProjectDialog.py:63
 msgid "Company Name"
 msgstr "Nombre de empresa"
 
-#: ../controls/ProjectPropertiesPanel.py:106
+#: ../controls/ProjectPropertiesPanel.py:108
 msgid "Company Name (required):"
 msgstr "Nombre de empresa (requerido):"
 
-#: ../controls/ProjectPropertiesPanel.py:107
+#: ../controls/ProjectPropertiesPanel.py:109
 msgid "Company URL (optional):"
 msgstr "Página web (opcional):"
 
@@ -998,7 +1124,7 @@
 msgid "Comparison"
 msgstr "Comparación"
 
-#: ../ProjectController.py:756
+#: ../ProjectController.py:787
 msgid "Compiling IEC Program into C code...\n"
 msgstr "Compilando el programa IEC en código C...\n"
 
@@ -1024,25 +1150,25 @@
 
 #: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
 #: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
-#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:353
 msgid "Confirm or change variable name"
 msgstr "Confirme en cambio de nombre de la variable"
 
-#: ../ProjectController.py:1842
+#: ../ProjectController.py:1925
 msgid "Connect"
 msgstr "Conectar"
 
-#: ../ProjectController.py:1843
+#: ../ProjectController.py:1926
 msgid "Connect to the target PLC"
 msgstr "Conectar el PLC de destino"
 
-#: ../ProjectController.py:1391
+#: ../ProjectController.py:1469
 #, python-format
 msgid "Connected to URI: %s"
 msgstr "Conectado a la URI: %s"
 
-#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
-#: ../editors/Viewer.py:2441
+#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:626
+#: ../editors/Viewer.py:2443
 msgid "Connection"
 msgstr "Conexión"
 
@@ -1050,25 +1176,25 @@
 msgid "Connection Properties"
 msgstr "Propiedades de la conexión"
 
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1773
 msgid "Connection canceled!\n"
 msgstr "¡Conexión cancelada!\n"
 
-#: ../ProjectController.py:1714
+#: ../ProjectController.py:1797
 #, python-format
 msgid "Connection failed to %s!\n"
 msgstr "¡La conexión con %s falló!\n"
 
-#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
+#: ../connectors/PYRO/__init__.py:124 ../connectors/WAMP/__init__.py:121
 msgid "Connection lost!\n"
 msgstr "¡Conexión perdida!\n"
 
-#: ../connectors/PYRO/__init__.py:110
+#: ../connectors/PYRO/__init__.py:111
 #, python-format
 msgid "Connection to '%s' failed.\n"
 msgstr "¡La conexión con '%s' falló!\n"
 
-#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
+#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1678
 msgid "Connector"
 msgstr "Conector"
 
@@ -1076,7 +1202,7 @@
 msgid "Connectors:"
 msgstr "Conectores:"
 
-#: ../BeremizIDE.py:378
+#: ../BeremizIDE.py:374
 msgid "Console"
 msgstr "Consola"
 
@@ -1084,18 +1210,22 @@
 msgid "Constant"
 msgstr "Constante"
 
-#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
+#: ../editors/Viewer.py:637 ../editors/Viewer.py:2446
 msgid "Contact"
 msgstr "Contacto"
 
-#: ../controls/ProjectPropertiesPanel.py:217
+#: ../controls/ProjectPropertiesPanel.py:219
 msgid "Content Description (optional):"
 msgstr "Descripción del contenido (opcional):"
 
-#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
+#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1679
 msgid "Continuation"
 msgstr "Continuación"
 
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Control Byte"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:18
 msgid "Conversion from BCD"
 msgstr "Conversión desde BCD"
@@ -1112,20 +1242,20 @@
 msgid "Conversion to time-of-day"
 msgstr "Conversión a hora-del-día"
 
-#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
-#: ../IDEFrame.py:427
+#: ../editors/Viewer.py:698 ../controls/LogViewer.py:713 ../IDEFrame.py:375
+#: ../IDEFrame.py:428
 msgid "Copy"
 msgstr "Copiar"
 
-#: ../IDEFrame.py:1964
+#: ../IDEFrame.py:1981
 msgid "Copy POU"
 msgstr "Copiar POU"
 
-#: ../editors/FileManagementPanel.py:68
+#: ../editors/FileManagementPanel.py:67
 msgid "Copy file from left folder to right"
 msgstr "Copiar el archivo de la carpeta de la izquierda a la derecha"
 
-#: ../editors/FileManagementPanel.py:67
+#: ../editors/FileManagementPanel.py:66
 msgid "Copy file from right folder to left"
 msgstr "Copiar el archivo de la carpeta de la derecha a la izquierda "
 
@@ -1147,6 +1277,16 @@
 msgid "Couldn't import old %s file."
 msgstr "No se pudo importar el archivo viejo %s."
 
+#: ../etherlab/EthercatMaster.py:258
+#, python-format
+msgid "Couldn't load %s network configuration file."
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:279
+#, python-format
+msgid "Couldn't load %s network process variables file."
+msgstr ""
+
 #: ../ConfigTreeNode.py:630
 #, python-brace-format
 msgid ""
@@ -1165,15 +1305,22 @@
 "No se pudieron cargar los siguientes parámetros del confnode {a1}:\n"
 "{a2}"
 
+#: ../etherlab/etherlab.py:264
+#, python-brace-format
+msgid ""
+"Couldn't load {a1} XML file:\n"
+"{a2}"
+msgstr ""
+
 #: ../PLCControler.py:552
 msgid "Couldn't paste non-POU object."
 msgstr "No puede pegar un objeto distinto a un POU "
 
-#: ../ProjectController.py:1636
+#: ../ProjectController.py:1717
 msgid "Couldn't start PLC !\n"
 msgstr "¡No se pudo iniciar el PLC!\n"
 
-#: ../ProjectController.py:1644
+#: ../ProjectController.py:1725
 msgid "Couldn't stop PLC !\n"
 msgstr "¡No se pudo detener el PLC!\n"
 
@@ -1181,43 +1328,43 @@
 msgid "Create HMI"
 msgstr "Crear un HMI"
 
-#: ../dialogs/PouDialog.py:54
+#: ../dialogs/PouDialog.py:48
 msgid "Create a new POU"
 msgstr "Crear un nuevo POU"
 
-#: ../dialogs/PouActionDialog.py:45
+#: ../dialogs/PouActionDialog.py:42
 msgid "Create a new action"
 msgstr "Crear una nueva Acción"
 
-#: ../IDEFrame.py:166
+#: ../IDEFrame.py:313
 msgid "Create a new action block"
 msgstr "Crear un nuevo Bloque de Acción"
 
-#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
+#: ../IDEFrame.py:262 ../IDEFrame.py:292 ../IDEFrame.py:325
 msgid "Create a new block"
 msgstr "Crear un nuevo Bloque"
 
-#: ../IDEFrame.py:139
+#: ../IDEFrame.py:286
 msgid "Create a new branch"
 msgstr "Crear una nueva rama"
 
-#: ../IDEFrame.py:133
+#: ../IDEFrame.py:280
 msgid "Create a new coil"
 msgstr "Crear una nueva bobina"
 
-#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
+#: ../IDEFrame.py:256 ../IDEFrame.py:271 ../IDEFrame.py:301
 msgid "Create a new comment"
 msgstr "Crear un nuevo comentario"
 
-#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
+#: ../IDEFrame.py:265 ../IDEFrame.py:295 ../IDEFrame.py:328
 msgid "Create a new connection"
 msgstr "Crear una nueva conexión"
 
-#: ../IDEFrame.py:136 ../IDEFrame.py:187
+#: ../IDEFrame.py:283 ../IDEFrame.py:334
 msgid "Create a new contact"
 msgstr "Crear un nuevo contacto"
 
-#: ../IDEFrame.py:169
+#: ../IDEFrame.py:316
 msgid "Create a new divergence"
 msgstr "Crear una nueva divergencia"
 
@@ -1225,43 +1372,55 @@
 msgid "Create a new divergence or convergence"
 msgstr "Crear una nueva divergencia o convergencia"
 
-#: ../IDEFrame.py:157
+#: ../IDEFrame.py:304
 msgid "Create a new initial step"
 msgstr "Crear un nuevo Paso inicial"
 
-#: ../IDEFrame.py:172
+#: ../IDEFrame.py:319
 msgid "Create a new jump"
 msgstr "Crear un nuevo salto"
 
-#: ../IDEFrame.py:127 ../IDEFrame.py:184
+#: ../IDEFrame.py:274 ../IDEFrame.py:331
 msgid "Create a new power rail"
 msgstr "Crear un nuevo carril de potencia"
 
-#: ../IDEFrame.py:130
+#: ../IDEFrame.py:277
 msgid "Create a new rung"
 msgstr "Crear un nuevo escalón"
 
-#: ../IDEFrame.py:160
+#: ../IDEFrame.py:307
 msgid "Create a new step"
 msgstr "Crear un nuevo paso"
 
-#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
+#: ../dialogs/PouTransitionDialog.py:45 ../IDEFrame.py:310
 msgid "Create a new transition"
 msgstr "Crear una nueva transición"
 
-#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
+#: ../IDEFrame.py:259 ../IDEFrame.py:289 ../IDEFrame.py:322
 msgid "Create a new variable"
 msgstr "Crear una nueva variable"
 
+#: ../etherlab/etherlab.py:183
+msgid "Creating new PDO"
+msgstr ""
+
 #: ../dialogs/AboutDialog.py:109
 msgid "Credits"
 msgstr "Créditos"
 
-#: ../Beremiz_service.py:424
+#: ../runtime/WampClient.py:400
+msgid "Current status"
+msgstr ""
+
+#: ../Beremiz_service.py:437
 msgid "Current working directory :"
 msgstr "Directorio de trabajo actual:"
 
-#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
+#: ../runtime/WampClient.py:161
+msgid "Custom protocol options failed :"
+msgstr ""
+
+#: ../editors/Viewer.py:697 ../IDEFrame.py:373 ../IDEFrame.py:427
 msgid "Cut"
 msgstr "Cortar"
 
@@ -1310,11 +1469,11 @@
 msgid "Date subtraction"
 msgstr "Resta de Fechas"
 
-#: ../dialogs/DurationEditorDialog.py:46
+#: ../dialogs/DurationEditorDialog.py:57
 msgid "Days:"
 msgstr "Días:"
 
-#: ../ProjectController.py:1729
+#: ../ProjectController.py:1809
 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
 msgstr ""
 "La depuración no coincide con el PLC: Detenga / transfiera / inicie para "
@@ -1324,42 +1483,51 @@
 msgid "Debug instance"
 msgstr "Instancia de depuración"
 
-#: ../editors/Viewer.py:490
+#: ../editors/Viewer.py:493
 #, python-format
 msgid "Debug: %s"
 msgstr "Depuración: %s"
 
-#: ../ProjectController.py:1471
+#: ../ProjectController.py:1548
 #, python-format
 msgid "Debug: Unknown variable '%s'\n"
 msgstr "Depuración: La variable '%s' es desconocida\n"
 
-#: ../ProjectController.py:1469
+#: ../ProjectController.py:1545
 #, python-format
 msgid "Debug: Unsupported type to debug '%s'\n"
 msgstr "Depuración: El tipo '%s' no es soportado por el depurador\n"
 
-#: ../IDEFrame.py:660
+#: ../IDEFrame.py:666
 msgid "Debugger"
 msgstr "Depurador"
 
-#: ../ProjectController.py:1726
+#: ../ProjectController.py:1805
 msgid "Debugger ready\n"
 msgstr "Depurador listo\n"
 
-#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Default Size"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:174
+#, python-format
+msgid "Definition conflict for location \"%s\""
+msgstr ""
+
+#: ../BeremizIDE.py:1001 ../editors/Viewer.py:673 ../IDEFrame.py:2010
 msgid "Delete"
 msgstr "Borrar"
 
-#: ../editors/Viewer.py:610
+#: ../editors/Viewer.py:613
 msgid "Delete Divergence Branch"
 msgstr "Borrar Rama de Divergencia"
 
-#: ../editors/FileManagementPanel.py:157
+#: ../etherlab/ConfigEditor.py:1261 ../editors/FileManagementPanel.py:156
 msgid "Delete File"
 msgstr "Borrar Archivo"
 
-#: ../editors/Viewer.py:597
+#: ../editors/Viewer.py:600
 msgid "Delete Wire Segment"
 msgstr "Borrar Segmento de Cableado"
 
@@ -1375,11 +1543,12 @@
 msgid "Derivation Type:"
 msgstr "Tipo de Derivación:"
 
-#: ../editors/CodeFileEditor.py:735
+#: ../etherlab/ConfigEditor.py:346 ../etherlab/ConfigEditor.py:465
+#: ../editors/CodeFileEditor.py:754
 msgid "Description"
 msgstr "Descripción"
 
-#: ../controls/VariablePanel.py:463
+#: ../controls/VariablePanel.py:465
 msgid "Description:"
 msgstr "Descripción:"
 
@@ -1391,7 +1560,7 @@
 msgid "Direction"
 msgstr "Dirección"
 
-#: ../dialogs/BrowseLocationsDialog.py:102
+#: ../dialogs/BrowseLocationsDialog.py:101
 msgid "Direction:"
 msgstr "Dirección:"
 
@@ -1399,19 +1568,19 @@
 msgid "Directly"
 msgstr "Directamente"
 
-#: ../ProjectController.py:1855
+#: ../ProjectController.py:1938
 msgid "Disconnect"
 msgstr "Desconectar"
 
-#: ../ProjectController.py:1856
+#: ../ProjectController.py:1939
 msgid "Disconnect from PLC"
 msgstr "Desconectar del PLC"
 
-#: ../ProjectController.py:1401
+#: ../runtime/PlcStatus.py:14
 msgid "Disconnected"
 msgstr "Desconectado"
 
-#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
+#: ../editors/Viewer.py:657 ../editors/Viewer.py:2438
 msgid "Divergence"
 msgstr "Divergencia"
 
@@ -1419,7 +1588,7 @@
 msgid "Division"
 msgstr "División"
 
-#: ../editors/FileManagementPanel.py:156
+#: ../etherlab/ConfigEditor.py:1260 ../editors/FileManagementPanel.py:155
 #, python-format
 msgid "Do you really want to delete the file '%s'?"
 msgstr "¿Realmente desea borrar el archivo '%s'?"
@@ -1432,15 +1601,31 @@
 msgid "Done"
 msgstr "Listo"
 
+#: ../runtime/WampClient.py:384
+msgid "Download"
+msgstr ""
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Duration"
 msgstr "Duración"
 
+#: ../bacnet/bacnet.py:437
+msgid "EDE files (*_EDE.csv)|*_EDE.csv|All files|*.*"
+msgstr ""
+
 #: ../canfestival/canfestival.py:174
 msgid "EDS files (*.eds)|*.eds|All files|*.*"
 msgstr "Archivos EDS (*.eds)|*.eds|Todos los archivos|*.*"
 
-#: ../editors/Viewer.py:668
+#: ../etherlab/ConfigEditor.py:1342
+msgid "ESI Files Database management"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1109
+msgid "ESI Files:"
+msgstr ""
+
+#: ../editors/Viewer.py:671
 msgid "Edit Block"
 msgstr "Editar Bloque"
 
@@ -1452,7 +1637,7 @@
 msgid "Edit Contact Values"
 msgstr "Editar Contacto"
 
-#: ../dialogs/DurationEditorDialog.py:62
+#: ../dialogs/DurationEditorDialog.py:54
 msgid "Edit Duration"
 msgstr "Editar Duración"
 
@@ -1472,11 +1657,11 @@
 msgid "Edit array type properties"
 msgstr "Editar Matriz"
 
-#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
+#: ../dialogs/CommentEditDialog.py:53
 msgid "Edit comment"
 msgstr "Editar Comentario"
 
-#: ../editors/FileManagementPanel.py:69
+#: ../editors/FileManagementPanel.py:68
 msgid "Edit file"
 msgstr "Editar archivo"
 
@@ -1484,11 +1669,11 @@
 msgid "Edit item"
 msgstr "Editar item"
 
-#: ../editors/Viewer.py:3059
+#: ../editors/Viewer.py:3058
 msgid "Edit jump target"
 msgstr "Editar Destino del Salto"
 
-#: ../ProjectController.py:1873
+#: ../ProjectController.py:1956
 msgid "Edit raw IEC code added to code generated by PLCGenerator"
 msgstr "Editar el código IEC añadido al codigo generado por PLCGenerator "
 
@@ -1500,11 +1685,11 @@
 msgid "Edit transition"
 msgstr "Editar transición"
 
-#: ../IDEFrame.py:632
+#: ../IDEFrame.py:638
 msgid "Editor ToolBar"
 msgstr "Barra de Herramienta Editor"
 
-#: ../ProjectController.py:1294
+#: ../ProjectController.py:1355
 msgid "Editor selection"
 msgstr "Selección del Editor"
 
@@ -1512,7 +1697,7 @@
 msgid "Elements :"
 msgstr "Elementos:"
 
-#: ../ProjectController.py:1399
+#: ../runtime/PlcStatus.py:15
 msgid "Empty"
 msgstr "Vacío"
 
@@ -1520,18 +1705,45 @@
 msgid "Empty dimension isn't allowed."
 msgstr "Las dimensiones no pueden estar vacías."
 
-#: ../Beremiz_service.py:341
+#: ../etherlab/EtherCATManagementEditor.py:37
+msgid "Enable"
+msgstr ""
+
+#: ../runtime/WampClient.py:410
+msgid "Enable WAMP connection"
+msgstr ""
+
+#: ../Beremiz_service.py:354
 msgid "Enter a name "
 msgstr "Ingrese un nombre"
 
-#: ../Beremiz_service.py:326
+#: ../Beremiz_service.py:339
 msgid "Enter a port number "
 msgstr "Ingrese un número de puerto"
 
-#: ../Beremiz_service.py:317
+#: ../etherlab/EtherCATManagementEditor.py:627
+msgid ""
+"Enter hex or dec value (if enter dec value, it automatically conversed hex "
+"value)"
+msgstr ""
+
+#: ../etherlab/EtherCATManagementEditor.py:1964
+msgid "Enter hex(0xnnnn) or dec(n) value"
+msgstr ""
+
+#: ../Beremiz_service.py:330
 msgid "Enter the IP of the interface to bind"
 msgstr "Escriba la dirección IP de la interfaz a enlazar"
 
+#: ../etherlab/ConfigEditor.py:502
+msgid "Entry can't be write through SDO"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:569
+#, python-brace-format
+msgid "Entry index 0x{a1:.4x}, subindex 0x{a2:.2x} not mapped for device {a3}"
+msgstr ""
+
 #: ../editors/DataTypeEditor.py:60
 msgid "Enumerated"
 msgstr "Enumerado"
@@ -1542,46 +1754,49 @@
 
 #: ../dialogs/ForceVariableDialog.py:213
 #: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
-#: ../dialogs/DurationEditorDialog.py:124
-#: ../dialogs/DurationEditorDialog.py:170
-#: ../dialogs/PouTransitionDialog.py:114 ../dialogs/BlockPreviewDialog.py:237
-#: ../dialogs/ProjectDialog.py:80 ../dialogs/ArrayTypeDialog.py:114
-#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/DurationEditorDialog.py:125
+#: ../dialogs/DurationEditorDialog.py:172
+#: ../dialogs/PouTransitionDialog.py:113 ../dialogs/BlockPreviewDialog.py:237
+#: ../dialogs/ProjectDialog.py:78 ../dialogs/ArrayTypeDialog.py:114
+#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:228
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
-#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:143
+#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:178
 #: ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
-#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
-#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
-#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
-#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
-#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
-#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
-#: ../ProjectController.py:391 ../ProjectController.py:531
-#: ../ProjectController.py:538 ../controls/FolderTree.py:222
-#: ../controls/ProjectPropertiesPanel.py:306
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
+#: ../etherlab/ConfigEditor.py:458 ../etherlab/ConfigEditor.py:510
+#: ../etherlab/ConfigEditor.py:981 ../etherlab/ConfigEditor.py:1047
+#: ../etherlab/ConfigEditor.py:1246 ../etherlab/ConfigEditor.py:1314
+#: ../etherlab/EthercatMaster.py:463 ../editors/ResourceEditor.py:468
+#: ../editors/Viewer.py:467 ../editors/LDViewer.py:677
+#: ../editors/LDViewer.py:893 ../editors/LDViewer.py:897
+#: ../editors/DataTypeEditor.py:566 ../editors/DataTypeEditor.py:571
+#: ../editors/DataTypeEditor.py:590 ../editors/DataTypeEditor.py:759
+#: ../editors/DataTypeEditor.py:766 ../editors/TextViewer.py:390
+#: ../editors/CodeFileEditor.py:779 ../ProjectController.py:404
+#: ../ProjectController.py:548 ../ProjectController.py:557
+#: ../controls/FolderTree.py:222 ../controls/ProjectPropertiesPanel.py:308
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:163
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
-#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
-#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
-#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
-#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
+#: ../controls/VariablePanel.py:430 ../controls/VariablePanel.py:784
+#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1049 ../IDEFrame.py:1667
+#: ../IDEFrame.py:1708 ../IDEFrame.py:1713 ../IDEFrame.py:1727
+#: ../IDEFrame.py:1732 ../Beremiz_service.py:234
 msgid "Error"
 msgstr "Error"
 
-#: ../ProjectController.py:811
+#: ../ProjectController.py:848
 msgid ""
 "Error : At least one configuration and one resource must be declared in PLC "
 "!\n"
 msgstr ""
 "Error: ¡Debe declarar en el PLC, al menos una configuración y un recurso!\n"
 
-#: ../ProjectController.py:803
+#: ../ProjectController.py:838
 #, python-format
 msgid "Error : IEC to C compiler returned %d\n"
 msgstr "Error: El compilador de IEC a C retorno %d\n"
 
-#: ../ProjectController.py:731
+#: ../ProjectController.py:762
 #, python-format
 msgid ""
 "Error in ST/IL/SFC code generator :\n"
@@ -1595,7 +1810,21 @@
 msgid "Error while saving \"%s\"\n"
 msgstr "Error al guardar \"%s\"\n"
 
-#: ../canfestival/canfestival.py:179
+#: ../bacnet/bacnet.py:581
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x: {a2}' contains objects with duplicate object "
+"identifiers.\n"
+msgstr ""
+
+#: ../bacnet/bacnet.py:573
+#, python-brace-format
+msgid ""
+"Error: BACnet server '{a1}.x:{a2}' contains objects with duplicate object "
+"names.\n"
+msgstr ""
+
+#: ../canfestival/canfestival.py:179 ../bacnet/bacnet.py:444
 msgid "Error: Export slave failed\n"
 msgstr "Error: Error al exportar el esclavo\n"
 
@@ -1616,7 +1845,23 @@
 msgid "Error: No PLC built\n"
 msgstr "Error: No se construyó el PLC\n"
 
-#: ../ProjectController.py:1708
+#: ../etherlab/ConfigEditor.py:269
+msgid "EtherCAT Management"
+msgstr ""
+
+#: ../features.py:20
+msgid "EtherCAT master"
+msgstr ""
+
+#: ../etherlab/EthercatMaster.py:302
+msgid "Ethercat Slave Type"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:267
+msgid "Ethercat node"
+msgstr ""
+
+#: ../ProjectController.py:1791
 #, python-format
 msgid "Exception while connecting %s!\n"
 msgstr "¡Ocurrió una excepción conectando %s!\n"
@@ -1625,11 +1870,11 @@
 msgid "Execution Control:"
 msgstr "Control de ejecusión:"
 
-#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
+#: ../dialogs/FBDVariableDialog.py:85 ../dialogs/FBDBlockDialog.py:111
 msgid "Execution Order:"
 msgstr "Orden de Ejecusión:"
 
-#: ../features.py:36
+#: ../features.py:25
 msgid "Experimental web based HMI"
 msgstr "HMI experimental basada en web"
 
@@ -1641,44 +1886,48 @@
 msgid "Exponentiation"
 msgstr "Exponenciación"
 
+#: ../bacnet/bacnet.py:156
+msgid "Export BACnet slave to EDE file"
+msgstr ""
+
 #: ../canfestival/canfestival.py:186
 msgid "Export CanOpen slave to EDS file"
 msgstr "Exportar el esclavo CanOpen a un archivo EDS"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
 msgid "Export graph values to clipboard"
 msgstr "Exportar los valores del gráfico al portapapeles"
 
-#: ../canfestival/canfestival.py:185
+#: ../canfestival/canfestival.py:185 ../bacnet/bacnet.py:155
 msgid "Export slave"
 msgstr "Exportar esclavo"
 
-#: ../dialogs/FBDVariableDialog.py:94
+#: ../dialogs/FBDVariableDialog.py:95
 msgid "Expression:"
 msgstr "Expresión:"
 
-#: ../controls/VariablePanel.py:90
+#: ../controls/VariablePanel.py:87
 msgid "External"
 msgstr "Externa"
 
-#: ../ProjectController.py:826
+#: ../ProjectController.py:866
 msgid "Extracting Located Variables...\n"
 msgstr "Extrayendo variables locales...\n"
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "FBD"
 msgstr "FBD"
 
-#: ../ProjectController.py:1773
+#: ../ProjectController.py:1855
 msgid "Failed : Must build before transfer.\n"
 msgstr "Error: Debe construir el proyecto antes de la trasferencia.\n"
 
-#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:559
 msgid "Falling Edge"
 msgstr "Flanco descendente"
 
-#: ../ProjectController.py:1098
+#: ../ProjectController.py:1145
 msgid "Fatal : cannot get builder.\n"
 msgstr "Error: No se puede obtener el constructor.\n"
 
@@ -1687,12 +1936,12 @@
 msgid "Fetching %s"
 msgstr "Buscando %s"
 
-#: ../dialogs/DurationEditorDialog.py:167
+#: ../dialogs/DurationEditorDialog.py:169
 #, python-format
 msgid "Field %s hasn't a valid value!"
 msgstr "¡El valor en el campo %s no es válido!"
 
-#: ../dialogs/DurationEditorDialog.py:169
+#: ../dialogs/DurationEditorDialog.py:171
 #, python-format
 msgid "Fields %s haven't a valid value!"
 msgstr "¡Los valores en los campos %s no son válidos!"
@@ -1702,16 +1951,20 @@
 msgid "File '%s' already exists!"
 msgstr "¡El archivo '%s' ya existe!"
 
+#: ../runtime/WampClient.py:407
+msgid "File containing secret for that ID"
+msgstr ""
+
 #: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
-#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
+#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:380
 msgid "Find"
 msgstr "Buscar"
 
-#: ../IDEFrame.py:379
+#: ../IDEFrame.py:382
 msgid "Find Next"
 msgstr "Buscar el siguiente"
 
-#: ../IDEFrame.py:381
+#: ../IDEFrame.py:384
 msgid "Find Previous"
 msgstr "Buscar el anterior"
 
@@ -1723,7 +1976,7 @@
 msgid "Find:"
 msgstr "Buscar:"
 
-#: ../editors/Viewer.py:1633
+#: ../editors/Viewer.py:1635
 msgid "Force value"
 msgstr "Forzar el valor"
 
@@ -1731,9 +1984,9 @@
 msgid "Forcing Variable Value"
 msgstr "Forzar el valor de la variable"
 
-#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
-#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
-#: ../dialogs/PouDialog.py:125
+#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/ProjectDialog.py:77 ../dialogs/PouActionDialog.py:102
+#: ../dialogs/PouDialog.py:160
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr "El formulario no esta completo. ¡Debe llenar %s!"
@@ -1752,20 +2005,24 @@
 msgid "Forward"
 msgstr "Adelante"
 
-#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
+#: ../IDEFrame.py:455
+msgid "Full screen"
+msgstr ""
+
+#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1797
 msgid "Function"
 msgstr "Función"
 
-#: ../IDEFrame.py:354
+#: ../IDEFrame.py:357
 msgid "Function &Block"
 msgstr "&Bloque de Función"
 
-#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
-#: ../IDEFrame.py:1972
+#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1796
+#: ../IDEFrame.py:1989
 msgid "Function Block"
 msgstr "Bloque de Función"
 
-#: ../controls/VariablePanel.py:868
+#: ../controls/VariablePanel.py:879
 msgid "Function Block Types"
 msgstr "Tipos de Bloque de Función"
 
@@ -1790,19 +2047,19 @@
 msgid "Generate Program"
 msgstr "Generar Programa"
 
-#: ../ProjectController.py:722
+#: ../ProjectController.py:750
 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
 msgstr "Generando el código ST/IL/SFC IEC-61131  para el SoftPLC...\n"
 
-#: ../controls/VariablePanel.py:91
+#: ../controls/VariablePanel.py:88
 msgid "Global"
 msgstr "Global"
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
 msgid "Go to current value"
 msgstr "Ir al valor actual"
 
-#: ../controls/ProjectPropertiesPanel.py:189
+#: ../controls/ProjectPropertiesPanel.py:192
 msgid "Graphics"
 msgstr "Gráficos"
 
@@ -1814,32 +2071,36 @@
 msgid "Greater than or equal to"
 msgstr "Mayor o igual a"
 
-#: ../controls/ProjectPropertiesPanel.py:149
+#: ../controls/ProjectPropertiesPanel.py:152
 msgid "Grid Resolution:"
 msgstr "Resolución de la maya:"
 
-#: ../runtime/NevowServer.py:192
+#: ../runtime/NevowServer.py:313
 msgid "HTTP interface port :"
 msgstr "Puerto de interfaz HTTP:"
 
-#: ../controls/ProjectPropertiesPanel.py:135
+#: ../controls/ProjectPropertiesPanel.py:138
 msgid "Height:"
 msgstr "Altura:"
 
-#: ../editors/FileManagementPanel.py:89
+#: ../editors/FileManagementPanel.py:88
 msgid "Home Directory:"
 msgstr "DIrectorio de inicio:"
 
-#: ../controls/ProjectPropertiesPanel.py:165
+#: ../controls/ProjectPropertiesPanel.py:168
 msgid "Horizontal:"
 msgstr "Horizontal:"
 
-#: ../dialogs/DurationEditorDialog.py:47
+#: ../dialogs/DurationEditorDialog.py:58
 msgid "Hours:"
 msgstr "Horas:"
 
+#: ../runtime/WampClient.py:404
+msgid "ID"
+msgstr ""
+
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44
+#: ../dialogs/PouDialog.py:128
 msgid "IL"
 msgstr "IL"
 
@@ -1847,54 +2108,66 @@
 msgid "IP"
 msgstr "IP"
 
-#: ../Beremiz_service.py:318 ../Beremiz_service.py:320
+#: ../Beremiz_service.py:331 ../Beremiz_service.py:333
 msgid "IP is not valid!"
 msgstr "¡La dirección IP no es válida!"
 
+#: ../etherlab/ConfigEditor.py:1387
+msgid "Import ESI file"
+msgstr ""
+
 #: ../svgui/svgui.py:50 ../svgui/svgui.py:51
 msgid "Import SVG"
 msgstr "Importar SVG"
 
-#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
-#: ../controls/VariablePanel.py:89
+#: ../etherlab/ConfigEditor.py:1352
+msgid "Import file to ESI files database"
+msgstr ""
+
+#: ../dialogs/FBDVariableDialog.py:64 ../editors/Viewer.py:1664
+#: ../controls/VariablePanel.py:86
 msgid "InOut"
 msgstr "EntradaSalida"
 
-#: ../PLCGenerator.py:1040
+#: ../PLCGenerator.py:1089
 #, python-brace-format
 msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
 msgstr ""
 "La variable de tipo InOut {a1} en el bloque {a2} del POU {a3} debe estar "
 "conectada."
 
-#: ../editors/Viewer.py:473
+#: ../editors/Viewer.py:484
 msgid "Inactive"
 msgstr "inactivo"
 
-#: ../controls/VariablePanel.py:300
+#: ../controls/VariablePanel.py:299
 #, python-brace-format
 msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
 msgstr "Tipo de dato incompatible entre \"{a1}\" y \"{a2}\""
 
-#: ../controls/VariablePanel.py:306
+#: ../controls/VariablePanel.py:305
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr "Tamaño de dato incompatible entre \"%s\" y \"BOOL\""
 
-#: ../controls/VariablePanel.py:310
+#: ../controls/VariablePanel.py:309
 #, python-brace-format
 msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
 msgstr "Tamaño de dato incompatible entre \"{a1}\" y \"{a2}\""
 
+#: ../etherlab/ConfigEditor.py:48 ../etherlab/ConfigEditor.py:465
+msgid "Index"
+msgstr ""
+
 #: ../dialogs/ActionBlockDialog.py:42
 msgid "Indicator"
 msgstr "Indicador"
 
-#: ../editors/CodeFileEditor.py:734
+#: ../editors/CodeFileEditor.py:753
 msgid "Initial"
 msgstr "Inicial"
 
-#: ../editors/Viewer.py:650
+#: ../editors/Viewer.py:653
 msgid "Initial Step"
 msgstr "Paso Inicial"
 
@@ -1907,6 +2180,14 @@
 msgid "Initial Value:"
 msgstr "Valor Inicial:"
 
+#: ../etherlab/EthercatCIA402Slave.py:119
+msgid "Initiate Drag'n drop of Axis ref located variable"
+msgstr ""
+
+#: ../etherlab/EthercatCIA402Slave.py:126
+msgid "Initiate Drag'n drop of Network position located variable"
+msgstr ""
+
 #: ../svgui/svgui.py:56
 msgid "Inkscape"
 msgstr "InkScape"
@@ -1915,11 +2196,11 @@
 msgid "Inline"
 msgstr "En línea"
 
-#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
+#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:63
 #: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
-#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../editors/Viewer.py:1662 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:86
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Input"
 msgstr "Entrada"
 
@@ -1936,11 +2217,11 @@
 msgid "Instance with id %d doesn't exist!"
 msgstr "¡No existe una instancia con ID %d!"
 
-#: ../editors/ResourceEditor.py:279
+#: ../editors/ResourceEditor.py:277
 msgid "Instances:"
 msgstr "Instancias:"
 
-#: ../controls/VariablePanel.py:88
+#: ../controls/VariablePanel.py:85
 msgid "Interface"
 msgstr "Interface"
 
@@ -1952,7 +2233,7 @@
 msgid "Interval"
 msgstr "Intervalo"
 
-#: ../controls/ProjectPropertiesPanel.py:304
+#: ../controls/ProjectPropertiesPanel.py:306
 msgid ""
 "Invalid URL!\n"
 "Please enter correct URL address."
@@ -1972,14 +2253,26 @@
 msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
 msgstr "El tipo \"{a1}\" es inválido para la ubicación \"{a4}\" -> {a2} != {a3} "
 
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:129
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr "El valor \"%s\" no es válido para la variable de depuración"
 
-#: ../controls/VariablePanel.py:279 ../controls/VariablePanel.py:282
+#: ../etherlab/ConfigEditor.py:418 ../etherlab/ConfigEditor.py:421
+#: ../etherlab/ConfigEditor.py:452
+#, python-format
+msgid "Invalid value \"%s\" for process variable"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:480 ../etherlab/ConfigEditor.py:483
+#: ../etherlab/ConfigEditor.py:504
+#, python-format
+msgid "Invalid value \"%s\" for startup command"
+msgstr ""
+
+#: ../controls/VariablePanel.py:278 ../controls/VariablePanel.py:281
 #, python-format
 msgid "Invalid value \"%s\" for variable grid element"
 msgstr "El tipo \"%s\" no es valido para el elemento variable"
@@ -1994,7 +2287,12 @@
 msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
 msgstr "¡El valor \"{a1}\" es inválido para la variable \"{a2}\"!"
 
-#: ../dialogs/DurationEditorDialog.py:124
+#: ../etherlab/CommonEtherCATFunction.py:31
+#, python-format
+msgid "Invalid value for HexDecValue \"%s\""
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:125
 msgid ""
 "Invalid value!\n"
 "You must fill a numeric value."
@@ -2006,12 +2304,12 @@
 msgid "Is connection secure?"
 msgstr "¿La conexión es segura?"
 
-#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
+#: ../editors/Viewer.py:658 ../editors/Viewer.py:2427
 msgid "Jump"
 msgstr "Salto"
 
 #: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
-#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
+#: ../dialogs/PouDialog.py:128 ../controls/ProjectPropertiesPanel.py:161
 msgid "LD"
 msgstr "LD"
 
@@ -2022,35 +2320,35 @@
 "El elemento de escalera con el identificador %d se encuentra en mas de un "
 "peldaño."
 
-#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
-#: ../dialogs/PouDialog.py:113
+#: ../dialogs/PouTransitionDialog.py:92 ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:148
 msgid "Language"
 msgstr "Lenguaje"
 
-#: ../controls/ProjectPropertiesPanel.py:206
+#: ../controls/ProjectPropertiesPanel.py:208
 msgid "Language (optional):"
 msgstr "Lenguaje (opcional):"
 
-#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
-#: ../dialogs/PouDialog.py:81
+#: ../dialogs/PouTransitionDialog.py:66 ../dialogs/PouActionDialog.py:63
+#: ../dialogs/PouDialog.py:79
 msgid "Language:"
 msgstr "Lenguaje:"
 
-#: ../ProjectController.py:1779
+#: ../ProjectController.py:1861
 msgid "Latest build already matches current target. Transfering anyway...\n"
 msgstr ""
 "La última versión coincide con la versión descargada. Transfiriendo de todos"
 " modos...\n"
 
-#: ../Beremiz_service.py:281
+#: ../Beremiz_service.py:294
 msgid "Launch WX GUI inspector"
 msgstr "Inicial el inspector WX GUI"
 
-#: ../Beremiz_service.py:280
+#: ../Beremiz_service.py:293
 msgid "Launch a live Python shell"
 msgstr "Iniciar un shell Python en vivo"
 
-#: ../editors/Viewer.py:580
+#: ../editors/Viewer.py:583
 msgid "Left"
 msgstr "Izquierda"
 
@@ -2070,7 +2368,7 @@
 msgid "Less than or equal to"
 msgstr "Menor o igual a"
 
-#: ../IDEFrame.py:652
+#: ../IDEFrame.py:658
 msgid "Library"
 msgstr "Librería"
 
@@ -2086,7 +2384,7 @@
 msgid "Linking :\n"
 msgstr "Enlace:\n"
 
-#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
+#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:87
 msgid "Local"
 msgstr "Local"
 
@@ -2094,7 +2392,7 @@
 msgid "Local entries"
 msgstr "Entradas locales"
 
-#: ../ProjectController.py:1685
+#: ../ProjectController.py:1767
 msgid "Local service discovery failed!\n"
 msgstr "¡La busqueda de servicios locales falló!\n"
 
@@ -2102,28 +2400,44 @@
 msgid "Location"
 msgstr "Ubicación"
 
-#: ../dialogs/BrowseLocationsDialog.py:79
+#: ../dialogs/BrowseLocationsDialog.py:78
 msgid "Locations available:"
 msgstr "Ubicaciones disponibles:"
 
+#: ../runtime/NevowServer.py:175
+msgid "Log message level"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:25
 msgid "Logarithm to base 10"
 msgstr "Logaritmo en base 10"
 
-#: ../connectors/PYRO/__init__.py:102
+#: ../connectors/PYRO/__init__.py:103
 #, python-format
 msgid "MDNS resolution failure for '%s'\n"
 msgstr "Fallo de resolución MDNS para '%s\"\n"
 
+#: ../etherlab/ConfigEditor.py:67
+msgid "Manufacturer Specific"
+msgstr ""
+
 #: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
 msgid "Map Variable"
 msgstr "Asignar Variable"
 
-#: ../features.py:31
+#: ../features.py:19
+msgid "Map located variables over Bacnet"
+msgstr ""
+
+#: ../features.py:18
 msgid "Map located variables over CANopen"
 msgstr "Asignar la variable ubicada sobre CANOpen"
 
-#: ../features.py:32
+#: ../features.py:20
+msgid "Map located variables over EtherCAT"
+msgstr ""
+
+#: ../features.py:21
 msgid "Map located variables over Modbus"
 msgstr "Variable mapeadas sobre Modbus "
 
@@ -2131,11 +2445,25 @@
 msgid "Master"
 msgstr "Maestro"
 
+#: ../etherlab/ConfigEditor.py:613
+msgid "Master State"
+msgstr ""
+
 #: ../ConfigTreeNode.py:544
 #, python-brace-format
 msgid "Max count ({a1}) reached for this confnode of type {a2} "
 msgstr "Se alcanzó la cuenta máxima ({a1}) para el confnode de tipo {a2} "
 
+#: ../etherlab/etherlab.py:173
+msgid "Max entries by PDO"
+msgstr ""
+
+#: ../etherlab/etherlab.py:176
+msgid ""
+"Maximal number of entries mapped in a PDO\n"
+"including empty entries used for PDO alignment"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:71
 msgid "Maximum"
 msgstr "Máximo"
@@ -2146,26 +2474,34 @@
 
 #: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
 #: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
-#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
+#: ../controls/VariablePanel.py:316 ../controls/VariablePanel.py:379
 msgid "Memory"
 msgstr "Memoria"
 
-#: ../IDEFrame.py:617
+#: ../IDEFrame.py:623
 msgid "Menu ToolBar"
 msgstr "Menú de la barra de herramientas"
 
-#: ../dialogs/DurationEditorDialog.py:51
+#: ../runtime/NevowServer.py:176
+msgid "Message text"
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:62
 msgid "Microseconds:"
 msgstr "Microsegundos:"
 
-#: ../editors/Viewer.py:585
+#: ../editors/Viewer.py:588
 msgid "Middle"
 msgstr "Medio"
 
-#: ../dialogs/DurationEditorDialog.py:50
+#: ../dialogs/DurationEditorDialog.py:61
 msgid "Milliseconds:"
 msgstr "Milisegundos:"
 
+#: ../etherlab/etherlab.py:167
+msgid "Minimal size in bits between 2 pdo entries"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:72
 msgid "Minimum"
 msgstr "Mínimo"
@@ -2174,15 +2510,15 @@
 msgid "Minimum:"
 msgstr "Mínimo:"
 
-#: ../dialogs/DurationEditorDialog.py:48
+#: ../dialogs/DurationEditorDialog.py:59
 msgid "Minutes:"
 msgstr "Minutos:"
 
-#: ../controls/ProjectPropertiesPanel.py:231
+#: ../etherlab/etherlab.py:238 ../controls/ProjectPropertiesPanel.py:233
 msgid "Miscellaneous"
 msgstr " Misceláneo"
 
-#: ../features.py:32
+#: ../features.py:21
 msgid "Modbus support"
 msgstr "Soporte Mdbus"
 
@@ -2190,7 +2526,20 @@
 msgid "Modifier:"
 msgstr "Modificador:"
 
-#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
+#: ../etherlab/ConfigEditor.py:1313
+#, python-format
+msgid "Module %s must be an integer!"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1376
+msgid "Modules Library"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:1145
+msgid "Modules library:"
+msgstr ""
+
+#: ../PLCGenerator.py:795 ../PLCGenerator.py:1318
 #, python-brace-format
 msgid ""
 "More than one connector found corresponding to \"{a1}\" continuation in "
@@ -2219,23 +2568,31 @@
 msgid "Move element up"
 msgstr "Mover el elemento hacia arriba"
 
-#: ../editors/ResourceEditor.py:286
+#: ../editors/ResourceEditor.py:284
 msgid "Move instance down"
 msgstr "Mover la instancia hacia abajo"
 
-#: ../editors/ResourceEditor.py:285
+#: ../editors/ResourceEditor.py:283
 msgid "Move instance up"
 msgstr "Mover la instacia hacia arriba"
 
-#: ../editors/ResourceEditor.py:255
+#: ../etherlab/ConfigEditor.py:655
+msgid "Move process variable down"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:654
+msgid "Move process variable up"
+msgstr ""
+
+#: ../editors/ResourceEditor.py:253
 msgid "Move task down"
 msgstr "Mover la tarea hacia abajo"
 
-#: ../editors/ResourceEditor.py:254
+#: ../editors/ResourceEditor.py:252
 msgid "Move task up"
 msgstr "Mover la tarea hacia arriba"
 
-#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
+#: ../IDEFrame.py:253 ../IDEFrame.py:268 ../IDEFrame.py:298 ../IDEFrame.py:339
 msgid "Move the view"
 msgstr "Mover la vista"
 
@@ -2243,14 +2600,28 @@
 msgid "Move up"
 msgstr "Mover hacia arriba"
 
-#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
+#: ../bacnet/BacnetSlaveEditor.py:814 ../editors/CodeFileEditor.py:675
+#: ../controls/VariablePanel.py:486
 msgid "Move variable down"
 msgstr "Mover la variable hacia abajo"
 
-#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
+#: ../bacnet/BacnetSlaveEditor.py:813 ../editors/CodeFileEditor.py:674
+#: ../controls/VariablePanel.py:485
 msgid "Move variable up"
 msgstr "Mover la variable hacia arriba"
 
+#: ../bacnet/BacnetSlaveEditor.py:941
+msgid "Multi-State Input Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:940
+msgid "Multi-State Output Objects"
+msgstr ""
+
+#: ../bacnet/BacnetSlaveEditor.py:939
+msgid "Multi-State Value Objects"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:74
 msgid "Multiplexer (select 1 of N)"
 msgstr "Multiplexor (seleccionar 1 de N)"
@@ -2259,7 +2630,7 @@
 msgid "Multiplication"
 msgstr "Multiplicación"
 
-#: ../editors/FileManagementPanel.py:87
+#: ../editors/FileManagementPanel.py:86
 msgid "My Computer:"
 msgstr "Mi computador:"
 
@@ -2267,13 +2638,15 @@
 msgid "NAME"
 msgstr "NOMBRE"
 
-#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
-#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
+#: ../etherlab/EtherCATManagementEditor.py:37 ../etherlab/ConfigEditor.py:48
+#: ../etherlab/ConfigEditor.py:343 ../etherlab/ConfigEditor.py:1167
+#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:94
+#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:751
 #: ../controls/VariablePanel.py:59
 msgid "Name"
 msgstr "Nombre"
 
-#: ../Beremiz_service.py:342
+#: ../Beremiz_service.py:355
 msgid "Name must not be null!"
 msgstr "¡El nombre no debe ser nulo!"
 
@@ -2286,15 +2659,19 @@
 msgid "Natural logarithm"
 msgstr "Logaritmo Natural"
 
-#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
+#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:557
 msgid "Negated"
 msgstr "Negado"
 
-#: ../Beremiz_service.py:610
+#: ../etherlab/ConfigEditor.py:612
+msgid "Network"
+msgstr ""
+
+#: ../Beremiz_service.py:620
 msgid "Nevow Web service failed. "
 msgstr "El servicio Web Nevow falló."
 
-#: ../Beremiz_service.py:580
+#: ../Beremiz_service.py:596
 msgid "Nevow/Athena import failed :"
 msgstr "La importación Nevow/Athena falló:"
 
@@ -2307,20 +2684,29 @@
 msgid "New item"
 msgstr "Nuevo elemento"
 
-#: ../editors/Viewer.py:553
+#: ../editors/Viewer.py:556
 msgid "No Modifier"
 msgstr "Sin modificador"
 
-#: ../ProjectController.py:1808
+#: ../ProjectController.py:1891
 msgid "No PLC to transfer (did build succeed ?)\n"
 msgstr "No hay PLC para transferir (¿La construcción tuvo éxito?)\n"
 
-#: ../PLCGenerator.py:1678
+#: ../etherlab/EthercatCFileGenerator.py:504
+#, python-format
+msgid "No Sync manager defined for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1727
 #, python-format
 msgid "No body defined in \"%s\" POU"
 msgstr "No hay ningún cuerpo definido en el POU \"%s\""
 
-#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
+#: ../etherlab/CommonEtherCATFunction.py:1581
+msgid "No connected slaves"
+msgstr ""
+
+#: ../PLCGenerator.py:816 ../PLCGenerator.py:1330
 #, python-brace-format
 msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
 msgstr ""
@@ -2340,7 +2726,17 @@
 msgid "No informations found for \"%s\" block"
 msgstr "No se encontró información para el bloque \"%s\""
 
-#: ../PLCGenerator.py:1232
+#: ../etherlab/EthercatCFileGenerator.py:224
+#, python-format
+msgid "No informations found for device %s!"
+msgstr ""
+
+#: ../etherlab/EthercatCFileGenerator.py:515
+#, python-format
+msgid "No more free PDO index available for %s!"
+msgstr ""
+
+#: ../PLCGenerator.py:1281
 #, python-brace-format
 msgid ""
 "No output {a1} variable found in block {a2} in POU {a3}. Connection must be "
@@ -2353,11 +2749,21 @@
 msgid "No search results available."
 msgstr "No hay resultados de búsqueda disponibles."
 
+#: ../etherlab/ConfigEditor.py:1029
+#, python-format
+msgid "No slave defined at position %d!"
+msgstr ""
+
 #: ../svgui/svgui.py:142
 #, python-format
 msgid "No such SVG file: %s\n"
 msgstr "No existe el archivo SVG: %s\n"
 
+#: ../etherlab/ConfigEditor.py:1245
+#, python-format
+msgid "No such XML file: %s\n"
+msgstr ""
+
 #: ../canfestival/config_utils.py:682
 #, python-brace-format
 msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
@@ -2369,15 +2775,33 @@
 msgstr ""
 "No existe el indice/subindice ({a1},{a2}) en elID: {a3} (variable {a4})"
 
+#: ../etherlab/EthercatCFileGenerator.py:438
+#, python-format
+msgid "No sync manager available for %s pdo!"
+msgstr ""
+
 #: ../dialogs/BrowseValuesLibraryDialog.py:87
 msgid "No valid value selected!"
 msgstr "¡No se ha seleccionado un valor válido!"
 
-#: ../PLCGenerator.py:1676
+#: ../PLCGenerator.py:1725
 #, python-format
 msgid "No variable defined in \"%s\" POU"
 msgstr "No se ha definido ninguna variable en el POU \"%s\""
 
+#: ../etherlab/ConfigEditor.py:606
+#, python-format
+msgid "Node Position: %d"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:697
+msgid "Node filter:"
+msgstr ""
+
+#: ../etherlab/ConfigEditor.py:717
+msgid "Nodes variables filter:"
+msgstr ""
+
 #: ../canfestival/config_utils.py:379
 #, python-brace-format
 msgid "Non existing node ID : {a1} (variable {a2})"
@@ -2401,6 +2825,10 @@
 msgid "Not equal to"
 msgstr "Diferente de"
 
+#: ../etherlab/EtherCATManagementEditor.py:361
+msgid "Now Uploading..."
+msgstr ""
+
 #: ../dialogs/SFCDivergenceDialog.py:91
 msgid "Number of sequences:"
 msgstr "Número de secuencias:"
@@ -2409,7 +2837,11 @@
 msgid "Numerical"
 msgstr "Numéricos"
 
-#: ../editors/CodeFileEditor.py:736
+#: ../bacnet/BacnetSlaveEditor.py:808
+msgid "Object Properties:"
+msgstr ""
+
+#: ../editors/CodeFileEditor.py:755
 msgid "OnChange"
 msgstr "OnChange"
 
@@ -2426,7 +2858,7 @@
 msgid "Open Inkscape"
 msgstr "Abrir Inkscape"
 
-#: ../version.py:86
+#: ../version.py:88
 msgid ""
 "Open Source framework for automation, implemented IEC 61131 IDE with "
 "constantly growing set of extensions and flexible PLC runtime."
@@ -2435,12 +2867,12 @@
 "flexible y un entorno de desarrollo con todos los elementos de la IEC 61131 "
 "y un conjunto de extensiones en constante crecimiento."
 
-#: ../ProjectController.py:1879
+#: ../ProjectController.py:1962
 msgid "Open a file explorer to manage project files"
 msgstr ""
 "Abra un explorador de archivos para administrar los archivos del proyecto"
 
-#: ../wxglade_hmi/wxglade_hmi.py:161
+#: ../wxglade_hmi/wxglade_hmi.py:176
 msgid "Open wxGlade"
 msgstr "Abrir wxGlade"
 
@@ -2448,11 +2880,11 @@
 msgid "Option"
 msgstr "Opción"
 
-#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
+#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:756
 msgid "Options"
 msgstr "Opciones"
 
-#: ../controls/ProjectPropertiesPanel.py:109
+#: ../controls/ProjectPropertiesPanel.py:111
 msgid "Organization (optional):"
 msgstr "Organización (opcional):"