--- a/i18n/Beremiz_ru_RU.po Thu Jan 12 14:37:55 2017 +0300
+++ b/i18n/Beremiz_ru_RU.po Thu Jan 12 14:47:15 2017 +0300
@@ -7,8 +7,8 @@
"Project-Id-Version: Beremiz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-12-01 18:27+0300\n"
-"PO-Revision-Date: 2016-12-01 18:27+0300\n"
+"POT-Creation-Date: 2017-01-12 14:39+0300\n" +"PO-Revision-Date: 2017-01-12 14:41+0300\n" "Last-Translator: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
"Language-Team: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
@@ -17,7 +17,7 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
-#: ../PLCOpenEditor.py:408 ../Beremiz.py:1182
+#: ../PLCOpenEditor.py:408 ../Beremiz.py:1191 @@ -44,49 +44,49 @@
#: ../controls/VariablePanel.py:72
#: ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:72
#: ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:73
-#: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:66
+#: ../dialogs/PouTransitionDialog.py:99 ../dialogs/ProjectDialog.py:66 #: ../dialogs/PouActionDialog.py:91 ../dialogs/PouDialog.py:113
-#: ../ProjectController.py:1073
+#: ../ProjectController.py:1089 msgid " generation failed !\n"
msgstr "неудачная генерация кода!\n"
-#: ../plcopen/plcopen.py:890
+#: ../plcopen/plcopen.py:881 msgid "\"%s\" Data Type doesn't exist !!!"
msgstr "Тип данных \"%s\" не существует!!!"
-#: ../plcopen/plcopen.py:908
+#: ../plcopen/plcopen.py:899 msgid "\"%s\" POU already exists !!!"
msgstr "POU \"%s\" уже существует!!!"
-#: ../plcopen/plcopen.py:929
+#: ../plcopen/plcopen.py:920 msgid "\"%s\" POU doesn't exist !!!"
msgstr "POU \"%s\" не найден!!!"
@@ -96,12 +96,12 @@
msgid "\"%s\" can't use itself!"
msgstr "\"%s\" не может использовать сам себя!!!"
-#: ../IDEFrame.py:1648 ../IDEFrame.py:1667
+#: ../IDEFrame.py:1652 ../IDEFrame.py:1671 msgid "\"%s\" config already exists!"
msgstr "Конфигурация \"%s\" уже существует!!!"
-#: ../plcopen/plcopen.py:476
+#: ../plcopen/plcopen.py:467 msgid "\"%s\" configuration already exists !!!"
msgstr "Конфигурация \"%s\" уже существует!!!"
@@ -111,7 +111,7 @@
msgid "\"%s\" data type already exists!"
msgstr "Тип данных \"%s\" уже существует!!!"
-#: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:219
+#: ../dialogs/PouTransitionDialog.py:110 ../dialogs/BlockPreviewDialog.py:219 #: ../dialogs/PouActionDialog.py:102 ../editors/Viewer.py:262
#: ../editors/Viewer.py:330 ../editors/Viewer.py:354 ../editors/Viewer.py:374
#: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
@@ -120,12 +120,12 @@
msgid "\"%s\" element for this pou already exists!"
msgstr "Элемент с именем \"%s\" уже существует в этом POU!!!"
msgid "\"%s\" folder is not a valid Beremiz project\n"
msgstr "Директория \"%s\" не является проектом Beremiz\n"
-#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106 #: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
@@ -135,7 +135,7 @@
msgid "\"%s\" is a keyword. It can't be used!"
msgstr "\"%s\" является ключевым словом и не может быть использован!"
-#: ../plcopen/plcopen.py:2416
+#: ../plcopen/plcopen.py:2412 msgid "\"%s\" is an invalid value!"
msgstr "\"%s\" недопустимое значение!"
@@ -145,7 +145,7 @@
msgid "\"%s\" is not a valid folder!"
msgstr "\"%s\" не является директорией!"
-#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99
+#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104 #: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
#: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
@@ -154,7 +154,7 @@
msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" неверный идентификатор!"
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
msgstr "\"%s\" используется более чем одним POU. Продолжить?"
@@ -191,7 +191,7 @@
"Right value must be greater than left value."
msgstr "\"%s\" не является корректной размерностью массива! Правое значение должно быть больше левого."
-#: ../PLCGenerator.py:1093
+#: ../PLCGenerator.py:1101 msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
msgstr "Функция \"{a1}\" не используется в POU \"{a2}\": входы не подключены"
@@ -201,12 +201,12 @@
msgid "\"{a1}\" is already used by \"{a2}\"!"
msgstr "\"{a1}\" уже используется \"{a2}\"!"
-#: ../plcopen/plcopen.py:500
+#: ../plcopen/plcopen.py:491 msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
msgstr "Ресурс \"{a1}\" уже существует в конфигурации \"{a2}\"!!!"
-#: ../plcopen/plcopen.py:518
+#: ../plcopen/plcopen.py:509 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
msgstr "Ресурс \"{a1}\" отсутствует в конфигурации \"{a2}\"!!!"
@@ -262,15 +262,15 @@
-#: ../plcopen/plcopen.py:1649 ../plcopen/plcopen.py:1656
-#: ../plcopen/plcopen.py:1668 ../plcopen/plcopen.py:1676
-#: ../plcopen/plcopen.py:1686
+#: ../plcopen/plcopen.py:1645 ../plcopen/plcopen.py:1652 +#: ../plcopen/plcopen.py:1664 ../plcopen/plcopen.py:1672 +#: ../plcopen/plcopen.py:1682 msgid "%s body don't have instances!"
msgstr "Тело %s не содержит экземпляров!"
-#: ../plcopen/plcopen.py:1704 ../plcopen/plcopen.py:1711
-#: ../plcopen/plcopen.py:1718
+#: ../plcopen/plcopen.py:1700 ../plcopen/plcopen.py:1707 +#: ../plcopen/plcopen.py:1714 msgid "%s body don't have text!"
msgstr "Тело %s не содержит никакой текст!"
@@ -279,8 +279,8 @@
msgstr "&Добавить элемент"
-#: ../dialogs/AboutDialog.py:64 ../dialogs/AboutDialog.py:112
-#: ../dialogs/AboutDialog.py:149
+#: ../dialogs/AboutDialog.py:65 ../dialogs/AboutDialog.py:113 +#: ../dialogs/AboutDialog.py:150 @@ -316,7 +316,7 @@
-#: ../dialogs/AboutDialog.py:63
+#: ../dialogs/AboutDialog.py:64 @@ -336,12 +336,12 @@
-#: ../controls/SearchResultPanel.py:252
+#: ../controls/SearchResultPanel.py:239 msgid "'{a1}' - {a2} match in project"
msgstr "'{a1}'- {a2} совпадений в проекте"
-#: ../controls/SearchResultPanel.py:254
+#: ../controls/SearchResultPanel.py:241 msgid "'{a1}' - {a2} matches in project"
msgstr "'{a1}' - {a2} совпадений в проекте"
@@ -351,7 +351,7 @@
msgid "'{a1}' is located at {a2}\n"
msgstr "'{a1}' находится {a2}\n"
-#: ../controls/SearchResultPanel.py:304
+#: ../controls/SearchResultPanel.py:291 @@ -360,7 +360,7 @@
-#: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/PouActionDialog.py:93 #: ../dialogs/PouDialog.py:115
@@ -370,6 +370,22 @@
+#: Extra TC6 documentation strings +msgid "0 - current time, 1 - load time from PDT" +msgstr "0 - текущее время, 1 - отклонение от PDT" +msgid "0 - manual , 1 - automatic" +msgstr "0 - ручной, 1 - автоматический" +msgid "0 - track X0, 1 - ramp to/track X1" +msgstr "0 - вход X0, 1 - нарастание до значения X1" +msgid "1 = integrate, 0 = hold" +msgstr "1 = интегрировать, 0 = остановка" #: ../controls/LogViewer.py:279
@@ -386,15 +402,15 @@
-#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1656
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1660 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "В POU присутствует элемент с именем \"%s\". Это может вызвать конфликт. Хотите продолжить?"
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:108 #: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
-#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1626 ../IDEFrame.py:1637
+#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1628 ../IDEFrame.py:1641 msgid "A POU named \"%s\" already exists!"
msgstr "POU с именем \"%s\" уже существует!"
@@ -409,7 +425,7 @@
msgstr "Необходимо выбрать размещение!"
#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:755
-#: ../IDEFrame.py:1628 ../IDEFrame.py:1639
+#: ../IDEFrame.py:1630 ../IDEFrame.py:1643 msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "Переменная с именем \"%s\" уже существует в этом POU!"
@@ -431,7 +447,7 @@
-#: ../editors/Viewer.py:555 ../editors/Viewer.py:2336
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2345 @@ -443,7 +459,7 @@
-#: ../plcopen/plcopen.py:1363
+#: ../plcopen/plcopen.py:1359 msgid "Action with name %s doesn't exist!"
msgstr "Действие с именем %s не существует!"
@@ -456,16 +472,16 @@
-#: ../editors/Viewer.py:1091
+#: ../editors/Viewer.py:1100 #: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
-#: ../editors/Viewer.py:588 ../Beremiz.py:1051
+#: ../editors/Viewer.py:588 ../Beremiz.py:1060 -#: ../IDEFrame.py:1886 ../IDEFrame.py:1921
+#: ../IDEFrame.py:1890 ../IDEFrame.py:1925 msgstr "Добавить действие"
@@ -473,11 +489,11 @@
msgid "Add C code accessing located variables synchronously"
msgstr "Добавить C-код с синхронным доступом к локальным переменным"
msgid "Add Configuration"
msgstr "Добавить конфигурацию"
msgstr "Добавить тип данных"
@@ -489,7 +505,7 @@
msgstr "Добавить IP адрес"
@@ -497,11 +513,11 @@
msgid "Add Python code executed asynchronously"
msgstr "Добавить асинхронно вызываемый код на Python"
-#: ../IDEFrame.py:1897 ../IDEFrame.py:1947
+#: ../IDEFrame.py:1901 ../IDEFrame.py:1951 -#: ../IDEFrame.py:1875 ../IDEFrame.py:1918
+#: ../IDEFrame.py:1879 ../IDEFrame.py:1922 msgstr "Добавить переход"
@@ -513,7 +529,7 @@
msgid "Add a new initial step"
msgstr "Добавить новый исходный шаг"
-#: ../editors/Viewer.py:2697 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2706 ../editors/SFCViewer.py:770 msgstr "Добавить новый безусловный переход"
@@ -561,7 +577,7 @@
msgid "Adjust Block Size"
msgstr "Скорректировать размер элемента"
-#: ../editors/Viewer.py:1628
+#: ../editors/Viewer.py:1637 @@ -577,7 +593,7 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr "Все файлы (*.*)|*.*|CSV files (*.csv)|*.csv"
-#: ../ProjectController.py:1607
+#: ../ProjectController.py:1623 msgid "Already connected. Please disconnect\n"
msgstr "Уже подключен. Пожалуйста, отключитесь сначала.\n"
@@ -627,7 +643,10 @@
msgid "Author Name (optional):"
msgstr "Имя автора (опционально):"
-#: ../dialogs/FindInPouDialog.py:81
+msgid "BUSY = 1 during ramping period" +msgstr "BOSY = 1 во время " +#: ../dialogs/FindInPouDialog.py:79 @@ -691,7 +710,7 @@
msgid "Bitwise inverting"
-#: ../editors/Viewer.py:525 ../editors/Viewer.py:2349
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2358 @@ -707,7 +726,7 @@
-#: ../ProjectController.py:1285
+#: ../ProjectController.py:1301 @@ -720,23 +739,23 @@
msgstr "Просмотр директорий"
-#: ../ProjectController.py:1753
+#: ../ProjectController.py:1769 -#: ../ProjectController.py:1219
+#: ../ProjectController.py:1235 msgid "Build directory already clean\n"
msgstr "Директория сборки уже пуста\n"
-#: ../ProjectController.py:1754
+#: ../ProjectController.py:1770 msgid "Build project into build folder"
msgstr "Сборка проекта в директории сборки"
-#: ../ProjectController.py:1002
+#: ../ProjectController.py:1018 msgid "C Build crashed !\n"
msgstr "Крэш во время сборки C-кода!\n"
-#: ../ProjectController.py:999
+#: ../ProjectController.py:1015 msgid "C Build failed.\n"
msgstr "Ошибка сборки C-кода.\n"
@@ -744,7 +763,7 @@
-#: ../ProjectController.py:1077
+#: ../ProjectController.py:1093 msgid "C code generated successfully.\n"
msgstr "C-код успешно сгенерирован.\n"
@@ -761,7 +780,7 @@
-#: ../dialogs/AboutDialog.py:62
+#: ../dialogs/AboutDialog.py:63 @@ -789,8 +808,8 @@
-#: ../plcopen/plcopen.py:1588 ../plcopen/plcopen.py:1602
-#: ../plcopen/plcopen.py:1626 ../plcopen/plcopen.py:1642
+#: ../plcopen/plcopen.py:1584 ../plcopen/plcopen.py:1598 +#: ../plcopen/plcopen.py:1622 ../plcopen/plcopen.py:1638 msgid "Can only generate execution order on FBD networks!"
msgstr "Можно сгенерировать порядок исполнения только для FBD!"
@@ -840,7 +859,7 @@
msgid "Cannot get PLC status - connection failed.\n"
msgstr "Невозможно получить состояние ПЛК - ошибка подключения.\n"
-#: ../ProjectController.py:865
+#: ../ProjectController.py:881 msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr "Не удалось открыть/прочитать VARIABLES.csv\n"
@@ -849,7 +868,7 @@
msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
msgstr "Невозможно установить битовое смещение для небулевой переменной '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
-#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:90
+#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:88 msgstr "Регистрозависимый"
@@ -857,23 +876,23 @@
-#: ../Beremiz_service.py:245
+#: ../Beremiz_service.py:266 msgid "Change IP of interface to bind"
msgstr "Сменить IP-адрес интерфейса для привязки сокета"
-#: ../Beremiz_service.py:244
+#: ../Beremiz_service.py:265
msgid "Change POU Type To"
msgstr "Сменить тип POU на"
-#: ../Beremiz_service.py:246
+#: ../Beremiz_service.py:267 msgid "Change Port Number"
msgstr "Сменить номер порта"
-#: ../Beremiz_service.py:247
+#: ../Beremiz_service.py:268 msgid "Change working directory"
msgstr "Сменить рабочую директорию"
@@ -885,7 +904,7 @@
msgid "Choose a SVG file"
msgstr "Выберите SVG-файл"
-#: ../ProjectController.py:436
+#: ../ProjectController.py:451 msgid "Choose a directory to save project"
msgstr "Выберите директорию, чтобы сохранить проект"
@@ -894,7 +913,7 @@
-#: ../Beremiz.py:925 ../Beremiz.py:960
+#: ../Beremiz.py:931 ../Beremiz.py:966 @@ -903,7 +922,7 @@
msgid "Choose a value for %s:"
msgstr "Выберите значение для %s:"
-#: ../Beremiz_service.py:293
+#: ../Beremiz_service.py:323 msgid "Choose a working directory "
msgstr "Выберите рабочую директорию"
@@ -927,7 +946,7 @@
-#: ../ProjectController.py:1757
+#: ../ProjectController.py:1773 @@ -935,11 +954,11 @@
msgid "Clean log messages"
-#: ../ProjectController.py:1759
+#: ../ProjectController.py:1775 msgid "Clean project build folder"
msgstr "Очистить директорию сборки проекта"
-#: ../ProjectController.py:1216
+#: ../ProjectController.py:1232 msgid "Cleaning the build directory\n"
msgstr "Очистка директории сборки\n"
@@ -951,7 +970,7 @@
msgid "Clear Execution Order"
msgstr "Очистить порядок исполнения"
-#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:113
+#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:111 @@ -968,7 +987,7 @@
-#: ../editors/Viewer.py:541 ../editors/Viewer.py:2357
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2366 @@ -998,7 +1017,7 @@
-#: ../ProjectController.py:656
+#: ../ProjectController.py:672 msgid "Compiling IEC Program into C code...\n"
msgstr "Компиляция МЭК-программы в C-код...\n"
@@ -1028,21 +1047,21 @@
msgid "Confirm or change variable name"
msgstr "Подтвердить или поменять имя переменной"
-#: ../ProjectController.py:1772
+#: ../ProjectController.py:1788 -#: ../ProjectController.py:1773
+#: ../ProjectController.py:1789 msgid "Connect to the target PLC"
msgstr "Подключиться к целевому ПЛК"
-#: ../ProjectController.py:1276
+#: ../ProjectController.py:1292 msgid "Connected to URI: %s"
msgstr "Подключен к URI: %s"
#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
-#: ../editors/Viewer.py:2350
+#: ../editors/Viewer.py:2359 @@ -1050,21 +1069,25 @@
msgid "Connection Properties"
msgstr "Свойства подключение"
-#: ../ProjectController.py:1631
+#: ../ProjectController.py:1647 msgid "Connection canceled!\n"
msgstr "Подключение отменено!\n"
-#: ../ProjectController.py:1656
+#: ../ProjectController.py:1672 msgid "Connection failed to %s!\n"
msgstr "Неудачное подключение к %s!\n"
+#: ../connectors/PYRO/__init__.py:115 ../connectors/WAMP/__init__.py:111 +msgid "Connection lost!\n" +msgstr "Подключение прервано!\n" #: ../connectors/PYRO/__init__.py:102
msgid "Connection to '%s' failed.\n"
msgstr "Неудачное подключение к %s!\n"
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1585
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1594 @@ -1080,7 +1103,7 @@
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2353
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2362 @@ -1088,7 +1111,7 @@
msgid "Content Description (optional):"
msgstr "Описание содержимого (опционально):"
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1586
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1595 @@ -1113,7 +1136,7 @@
@@ -1125,6 +1148,9 @@
msgid "Copy file from right folder to left"
msgstr "Скопировать файл с правой директории в левую"
#: ../plcopen/iec_std.csv:28
@@ -1165,15 +1191,15 @@
msgid "Couldn't paste non-POU object."
msgstr "Невозможно вставить не-POU."
-#: ../ProjectController.py:1573
+#: ../ProjectController.py:1589 msgid "Couldn't start PLC !\n"
msgstr "Невозможно запустить ПЛК!\n"
-#: ../ProjectController.py:1581
+#: ../ProjectController.py:1597 msgid "Couldn't stop PLC !\n"
msgstr "Невозможно остановить ПЛК!\n"
-#: ../ProjectController.py:1545
+#: ../ProjectController.py:1561 msgid "Couldn't stop debugger.\n"
msgstr "Невозможно остановить отладчик.\n"
@@ -1245,7 +1271,7 @@
msgid "Create a new step"
msgstr "Создать новый шаг"
-#: ../dialogs/PouTransitionDialog.py:42 ../IDEFrame.py:156
+#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:156 msgid "Create a new transition"
msgstr "Создать новый переход"
@@ -1253,10 +1279,14 @@
msgid "Create a new variable"
msgstr "Создать новую переменную"
-#: ../dialogs/AboutDialog.py:104
+#: ../dialogs/AboutDialog.py:105 +#: ../Beremiz_service.py:432 +msgid "Current working directory :" +msgstr "Текущая рабочая директория :" #: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424
@@ -1306,11 +1336,14 @@
+msgid "Datetime, current or relative to PDT" +msgstr "Текущие дата и время, абсолютные или относительные от PDT" #: ../dialogs/DurationEditorDialog.py:43
-#: ../ProjectController.py:1678
+#: ../ProjectController.py:1694 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
msgstr "Отлаживаемая программа не соответствует программе в ПЛК - остановите/загрузите/запустите, чтобы разрешить отладку\n"
@@ -1318,17 +1351,17 @@
msgstr "Отладка экземпляра"
-#: ../editors/Viewer.py:1108 ../editors/Viewer.py:3614
+#: ../editors/Viewer.py:1117 ../editors/Viewer.py:3653 -#: ../ProjectController.py:1334
+#: ../ProjectController.py:1350 msgid "Debug: Unknown variable '%s'\n"
msgstr "Отладка: неизвестная переменная '%s'\n"
-#: ../ProjectController.py:1332
+#: ../ProjectController.py:1348 msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Отладка: неподдерживамый отладкой тип '%s'\n"
@@ -1337,19 +1370,19 @@
-#: ../ProjectController.py:1514
+#: ../ProjectController.py:1530 msgid "Debugger disabled\n"
msgstr "Отладчик запрещен\n"
-#: ../ProjectController.py:1675
+#: ../ProjectController.py:1691 msgstr "Отладчик готов\n"
-#: ../ProjectController.py:1547
+#: ../ProjectController.py:1563 msgid "Debugger stopped.\n"
msgstr "Отладчик остановлен.\n"
-#: ../editors/Viewer.py:572 ../Beremiz.py:1055 ../IDEFrame.py:1955
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1959 @@ -1377,23 +1410,21 @@
msgstr "Механизм создания типа:"
-#: ../plcopen/definitions.py:66
-"The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
-"Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN."
+msgid "Derivative time constant" +msgstr "Постоянная времени дифференцирования" #: ../controls/VariablePanel.py:432
+msgid "Differentiated output" +msgstr "Дифференцированный выход" #: ../dialogs/ArrayTypeDialog.py:61 ../editors/DataTypeEditor.py:321
-#: ../dialogs/FindInPouDialog.py:70
+#: ../dialogs/FindInPouDialog.py:68 @@ -1408,19 +1439,19 @@
msgid "Disable_Extensions"
msgstr "Запретить расширения"
-#: ../ProjectController.py:1781
+#: ../ProjectController.py:1797 -#: ../ProjectController.py:1783
+#: ../ProjectController.py:1799 msgid "Disconnect from PLC"
msgstr "Отключиться от ПЛК"
-#: ../ProjectController.py:1286
+#: ../ProjectController.py:1302 -#: ../editors/Viewer.py:556 ../editors/Viewer.py:2345
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2354 @@ -1441,14 +1472,6 @@
-#: ../plcopen/definitions.py:59
-"The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
-"Декрементный счетчик\n"
-"Декрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг нулевого значения с исходного заданного значения."
#: ../dialogs/ActionBlockDialog.py:38
@@ -1489,7 +1512,7 @@
msgid "Edit array type properties"
msgstr "Редактировать свойства массива"
-#: ../editors/Viewer.py:2566 ../editors/Viewer.py:2977
+#: ../editors/Viewer.py:2575 ../editors/Viewer.py:3004 msgstr "Редактировать комментарий"
@@ -1501,11 +1524,11 @@
msgstr "Редактировать элемент"
-#: ../editors/Viewer.py:2941
+#: ../editors/Viewer.py:2963 msgstr "Редактирование безусловного перехода"
-#: ../ProjectController.py:1795
+#: ../ProjectController.py:1811 msgid "Edit raw IEC code added to code generated by PLCGenerator"
msgstr "Редактировать МЭК-код добавленный к коду сгенерированному PLCGenerator"
@@ -1521,15 +1544,18 @@
msgstr "Редактор панели инструментов"
-#: ../ProjectController.py:1179
+#: ../ProjectController.py:1195 msgstr "Редактор выделения"
+msgid "Elapsed time of ramp" +msgstr "Прошедшее время нарастания" #: ../editors/DataTypeEditor.py:348
-#: ../ProjectController.py:1284
+#: ../ProjectController.py:1300 @@ -1540,15 +1566,15 @@
-#: ../Beremiz_service.py:299
+#: ../Beremiz_service.py:331 -#: ../Beremiz_service.py:286
+#: ../Beremiz_service.py:316 msgid "Enter a port number "
msgstr "Введите номер порта"
-#: ../Beremiz_service.py:277
+#: ../Beremiz_service.py:307 msgid "Enter the IP of the interface to bind"
msgstr "Введите IP-адрес используемого интерфейса"
@@ -1563,7 +1589,7 @@
#: ../dialogs/ForceVariableDialog.py:179
#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
#: ../dialogs/DurationEditorDialog.py:121
-#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:107
+#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:112 #: ../dialogs/BlockPreviewDialog.py:236 ../dialogs/ProjectDialog.py:71
#: ../dialogs/ArrayTypeDialog.py:97 ../dialogs/ArrayTypeDialog.py:103
#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py:216
@@ -1576,27 +1602,28 @@
#: ../editors/DataTypeEditor.py:584 ../editors/DataTypeEditor.py:594
#: ../editors/DataTypeEditor.py:745 ../editors/DataTypeEditor.py:752
#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:783
-#: ../ProjectController.py:293 ../controls/FolderTree.py:217
+#: ../ProjectController.py:293 ../ProjectController.py:421 +#: ../ProjectController.py:428 ../controls/FolderTree.py:217 #: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:772
-#: ../Beremiz.py:1194 ../IDEFrame.py:1003 ../IDEFrame.py:1614
-#: ../IDEFrame.py:1651 ../IDEFrame.py:1656 ../IDEFrame.py:1670
-#: ../IDEFrame.py:1675 ../Beremiz_service.py:190
+#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1614 +#: ../IDEFrame.py:1655 ../IDEFrame.py:1660 ../IDEFrame.py:1674 +#: ../IDEFrame.py:1679 ../Beremiz_service.py:211 -#: ../ProjectController.py:711
+#: ../ProjectController.py:727 msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
msgstr "Ошибка: Как минимум одна конфигурация и один ресурс должны быть задекларированы в ПЛК!\n"
-#: ../ProjectController.py:703
+#: ../ProjectController.py:719 msgid "Error : IEC to C compiler returned %d\n"
msgstr "Ошибка: компилятор МЭК в C вернул код ошибки %d\n"
-#: ../ProjectController.py:605
+#: ../ProjectController.py:621 "Error in ST/IL/SFC code generator :\n"
@@ -1620,7 +1647,7 @@
msgid "Error: No PLC built\n"
msgstr "Ошибка: ПЛК не собран\n"
-#: ../ProjectController.py:1650
+#: ../ProjectController.py:1666 msgid "Exception while connecting %s!\n"
msgstr "Исключение во время подключения %s!\n"
@@ -1665,16 +1692,22 @@
-#: ../ProjectController.py:724
+#: ../ProjectController.py:740 msgid "Extracting Located Variables...\n"
msgstr "Экспорт локальных переменных...\n"
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+msgid "FB for derivative term" +msgstr "ФБ дифференцирования" +msgid "FB for integral term" +msgstr "ФД интегрирования" +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
-#: ../ProjectController.py:1713
+#: ../ProjectController.py:1729 msgid "Failed : Must build before transfer.\n"
msgstr "Ошибка: необходима сборка перед передачей.\n"
@@ -1682,15 +1715,7 @@
-#: ../plcopen/definitions.py:57
-"Falling edge detector\n"
-"The output produces a single pulse when a falling edge is detected."
-"Детектор падающего фронта\n"
-"На выходе формируется одиночный импульс, если обнаружен падающий фронт."
-#: ../ProjectController.py:992
+#: ../ProjectController.py:1008 msgid "Fatal : cannot get builder.\n"
msgstr "Ошибка: невозможно получить сборщик.\n"
@@ -1715,7 +1740,7 @@
msgstr "Файл '%s' уже существует!"
#: ../dialogs/SearchInProjectDialog.py:100 ../dialogs/FindInPouDialog.py:36
-#: ../dialogs/FindInPouDialog.py:108 ../IDEFrame.py:375
+#: ../dialogs/FindInPouDialog.py:106 ../IDEFrame.py:375 @@ -1731,7 +1756,7 @@
-#: ../dialogs/FindInPouDialog.py:59
+#: ../dialogs/FindInPouDialog.py:57 @@ -1739,7 +1764,7 @@
msgid "Force runtime reload\n"
msgstr "Принудительный перезапуск системы исполнения\n"
-#: ../editors/Viewer.py:1544
+#: ../editors/Viewer.py:1553 msgstr "Фиксировать значение"
@@ -1747,14 +1772,14 @@
msgid "Forcing Variable Value"
msgstr "Форсировать значение переменной"
-#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:97
+#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:102 #: ../dialogs/ProjectDialog.py:70 ../dialogs/PouActionDialog.py:94
#: ../dialogs/PouDialog.py:116
msgid "Form isn't complete. %s must be filled!"
msgstr "Форма заполнена неполностью. %s должен быть заполнен!"
-#: ../dialogs/SFCStepDialog.py:142 ../dialogs/FBDBlockDialog.py:232
+#: ../dialogs/SFCStepDialog.py:144 ../dialogs/FBDBlockDialog.py:232 #: ../dialogs/ConnectionDialog.py:160
msgid "Form isn't complete. Name must be filled!"
msgstr "Форма заполнена неполностью. Имя должно быть заполнено!"
@@ -1763,11 +1788,11 @@
msgid "Form isn't complete. Valid block type must be selected!"
msgstr "Форма заполнена неполностью. Должен быть выбран корректный тип блока!"
-#: ../dialogs/FindInPouDialog.py:76
+#: ../dialogs/FindInPouDialog.py:74 -#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1742
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1746 @@ -1775,8 +1800,8 @@
msgstr "Функциональный &блок"
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1741
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1745 msgstr "Функциональный блок"
@@ -1805,7 +1830,7 @@
msgstr "Сгенерировать программу"
-#: ../ProjectController.py:596
+#: ../ProjectController.py:612 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
msgstr "Генерация МЭК-61131 ST/IL/SFC кода ПЛК...\n"
@@ -1836,6 +1861,10 @@
+#: ../runtime/NevowServer.py:181 +msgid "HTTP interface port :" +msgstr "Порт HTTP-интерфейса :" #: ../controls/ProjectPropertiesPanel.py:120
@@ -1852,19 +1881,10 @@
-#: ../plcopen/definitions.py:69
-"The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
-"Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2."
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouActionDialog.py:31 ../dialogs/PouDialog.py:36 @@ -1872,7 +1892,7 @@
-#: ../Beremiz_service.py:278 ../Beremiz_service.py:279
+#: ../Beremiz_service.py:308 ../Beremiz_service.py:309 msgstr "Неверный IP-адрес"
@@ -1880,12 +1900,12 @@
-#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1571
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1580 #: ../controls/VariablePanel.py:71
-#: ../editors/Viewer.py:1091
+#: ../editors/Viewer.py:1100 @@ -1922,6 +1942,9 @@
msgstr "Исходное значение:"
+msgstr "Исходное значение" @@ -1932,12 +1955,18 @@
#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1569 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1578 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
+msgid "Input to be differentiated" +msgstr "Вход для дифференцирования" +msgstr "Входная переменная" #: ../dialogs/FBDBlockDialog.py:93
@@ -1946,7 +1975,7 @@
msgstr "Вставка подстроки"
-#: ../plcopen/plcopen.py:1695
+#: ../plcopen/plcopen.py:1691 msgid "Instance with id %d doesn't exist!"
msgstr "Экземпляр с id %d не существует!"
@@ -1955,13 +1984,8 @@
-#: ../plcopen/definitions.py:65
-"The integral function block integrates the value of input XIN over time."
-"Функциональный блок интегрирует входное значение XIN во времени."
+msgid "Integrated output" +msgstr "Интегрированный выход" #: ../controls/VariablePanel.py:70
@@ -2019,11 +2043,11 @@
"Необходимо ввести числовое значение."
-#: ../editors/Viewer.py:557 ../editors/Viewer.py:2334
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2343 msgstr "Безусловный переход"
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
@@ -2036,7 +2060,7 @@
msgid "Ladder element with id %d is on more than one rung."
msgstr "Элемент лестничной диаграммы с id %d более чем на одной ступени."
-#: ../dialogs/PouTransitionDialog.py:86 ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouTransitionDialog.py:91 ../dialogs/PouActionDialog.py:83 #: ../dialogs/PouDialog.py:104
@@ -2045,20 +2069,20 @@
msgid "Language (optional):"
msgstr "Язык (опционально):"
-#: ../dialogs/PouTransitionDialog.py:60 ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouTransitionDialog.py:65 ../dialogs/PouActionDialog.py:56 #: ../dialogs/PouDialog.py:73
-#: ../ProjectController.py:1719
+#: ../ProjectController.py:1735 msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr "Загружаемая программа совпадает с текущий программой в целевом ПЛК. Загрузка продолжена...\n"
-#: ../Beremiz_service.py:250
+#: ../Beremiz_service.py:271 msgid "Launch WX GUI inspector"
msgstr "Запустить WX GUI Inspector"
-#: ../Beremiz_service.py:249
+#: ../Beremiz_service.py:270 msgid "Launch a live Python shell"
msgstr "Запустить консоль Python"
@@ -2087,9 +2111,9 @@
-#: ../dialogs/AboutDialog.py:142
+#: ../dialogs/AboutDialog.py:143 @@ -2115,7 +2139,7 @@
msgstr "Локальные записи"
-#: ../ProjectController.py:1625
+#: ../ProjectController.py:1641 msgid "Local service discovery failed!\n"
msgstr "Локальный сервис не найден!\n"
@@ -2136,6 +2160,9 @@
msgid "MDNS resolution failure for '%s'\n"
msgstr "MDNS разрешение неудачно для '%s'\n"
+msgid "Manual output adjustment - Typically from transfer station" #: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:85
msgstr "Отображение переменной"
@@ -2203,7 +2230,7 @@
-#: ../PLCGenerator.py:778 ../PLCGenerator.py:1222
+#: ../PLCGenerator.py:786 ../PLCGenerator.py:1230 msgid "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
msgstr "Более одного коннектора соответствуют продолжению цепи \"{a1}\" в POU \"{a2}\""
@@ -2276,13 +2303,16 @@
#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83
#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
#: ../controls/VariablePanel.py:54
-#: ../Beremiz_service.py:300
+#: ../Beremiz_service.py:332 msgid "Name must not be null!"
msgstr "Имя не может быть null!"
@@ -2299,6 +2329,14 @@
+#: ../Beremiz_service.py:578 +msgid "Nevow Web service failed. " +msgstr "Ошибка Web сервиса Nevow. " +#: ../Beremiz_service.py:554 +msgid "Nevow/Athena import failed :" +msgstr "Ошибка импорта Nevow/Athena :" #: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:321
@@ -2312,16 +2350,16 @@
msgstr "Нет модификатора"
-#: ../ProjectController.py:1747
+#: ../ProjectController.py:1763 msgid "No PLC to transfer (did build succeed ?)\n"
msgstr "Нет ПЛК для передачи (была сборка успешна?)\n"
-#: ../PLCGenerator.py:1619
+#: ../PLCGenerator.py:1631 msgid "No body defined in \"%s\" POU"
msgstr "Нет тела для POU \"%s\""
-#: ../PLCGenerator.py:798 ../PLCGenerator.py:1233
+#: ../PLCGenerator.py:806 ../PLCGenerator.py:1241 msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
msgstr "Не найден коннектор, соответствующий продолжению цепи \"{a1}\" в POU \"{a2}\""
@@ -2334,12 +2372,12 @@
"Документация отсутствует.\n"
-#: ../PLCGenerator.py:821
+#: ../PLCGenerator.py:829 msgid "No informations found for \"%s\" block"
msgstr "Не найдена информация по блоку \"%s\""
-#: ../PLCGenerator.py:1186
+#: ../PLCGenerator.py:1194 msgid "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
msgstr "Выходная переменная {a1} не найдена в блоке {a2} в POU {a3}."
@@ -2367,7 +2405,7 @@
msgid "No valid value selected!"
msgstr "Не выбрано допустимое значение!"
-#: ../PLCGenerator.py:1617
+#: ../PLCGenerator.py:1629 msgid "No variable defined in \"%s\" POU"
msgstr "Переменная не определена в POU \"%s\""
@@ -2405,22 +2443,6 @@
msgstr "Математические функции"
-#: ../plcopen/definitions.py:63
-"The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-"Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE."
-#: ../plcopen/definitions.py:62
-"The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
-"Таймер выключения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE."
#: ../dialogs/SearchInProjectDialog.py:86
@@ -2438,7 +2460,7 @@
msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
msgstr "Свободное программное обеспечение для промышленной автоматизации, состоящие из среды разработки программ по стандарту МЭК 61131 с постоянно расширяющимся набором плагинов и гибкой системой исполнения для ПЛК."
-#: ../ProjectController.py:1799
+#: ../ProjectController.py:1815 msgid "Open a file explorer to manage project files"
msgstr "Открыть файловый менеджер для просмотра файлов проекта"
@@ -2450,7 +2472,7 @@
-#: ../dialogs/FindInPouDialog.py:85
+#: ../dialogs/FindInPouDialog.py:83 @@ -2464,12 +2486,15 @@
#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1570 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1579 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
+msgid "Overriding reset" +msgstr "Сброс интегратора" #: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84
@@ -2478,14 +2503,6 @@
-#: ../plcopen/definitions.py:67
-"The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
-"ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью."
@@ -2497,10 +2514,18 @@
-#: ../ProjectController.py:976
+#: ../ProjectController.py:992 msgid "PLC code generation failed !\n"
msgstr "Неудачная генерация кода!\n"
+#: ../Beremiz_service.py:295 +msgid "PLC is empty or already started." +msgstr "В ПЛК нет программы или он уже запущен." +#: ../Beremiz_service.py:302 +msgid "PLC is not started." #: ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:309
@@ -2548,6 +2573,9 @@
+msgstr "Ошибка, PV - SP" #: ../connectors/PYRO/__init__.py:45
msgid "PYRO connecting to URI : %s\n"
@@ -2566,7 +2594,7 @@
msgid "Page Size (optional):"
msgstr "Размер страницы (опционально):"
@@ -2579,7 +2607,7 @@
@@ -2591,7 +2619,7 @@
-#: ../editors/Viewer.py:2697 ../editors/Viewer.py:2941
+#: ../editors/Viewer.py:2706 ../editors/Viewer.py:2963 #: ../editors/SFCViewer.py:770
msgid "Please choose a target"
msgstr "Выберите цель перехода"
@@ -2600,7 +2628,7 @@
msgid "Please enter a block name"
msgstr "Введите имя блока"
-#: ../editors/Viewer.py:2567 ../editors/Viewer.py:2978
+#: ../editors/Viewer.py:2576 ../editors/Viewer.py:3005 msgid "Please enter comment text"
msgstr "Введите текст комментария"
@@ -2609,20 +2637,24 @@
msgid "Please enter step name"
msgstr "Введите имя шага"
+#: ../Beremiz_service.py:194 +msgid "Please enter text" #: ../dialogs/ForceVariableDialog.py:163
msgid "Please enter value for a \"%s\" variable:"
msgstr "Введите значение для переменной \"%s\":"
-#: ../Beremiz_service.py:287
+#: ../Beremiz_service.py:317 msgid "Port number must be 0 <= port <= 65535!"
msgstr "Номер порта должен быть в диапазоне от 0 до 65535!"
-#: ../Beremiz_service.py:287
+#: ../Beremiz_service.py:317 msgid "Port number must be an integer!"
msgstr "Номер порта должен быть целым числом!"
-#: ../editors/Viewer.py:536 ../editors/Viewer.py:2358
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2367 @@ -2630,6 +2662,9 @@
msgid "Power Rail Properties"
msgstr "Свойства шины питания"
#: ../PLCOpenEditor.py:120 ../Beremiz.py:338
@@ -2660,6 +2695,9 @@
msgid "Problem starting PLC : error %d"
msgstr "Проблема запуска ПЛК: ошибка %d"
+msgid "Process variable" +msgstr "Текущее значение регулируемой переменной" #: ../dialogs/ProjectDialog.py:55
@@ -2680,8 +2718,8 @@
msgid "Product Version (required):"
msgstr "Версия продукта (обязательно):"
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1740
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1744 @@ -2706,7 +2744,7 @@
-#: ../ProjectController.py:1798
+#: ../ProjectController.py:1814 @@ -2747,13 +2785,25 @@
-#: ../plcopen/definitions.py:61
-"The pulse timer can be used to generate output pulses of a given time duration."
-"Функциональный блок используется для генерации выходных импульсов заданной длительности."
+msgid "Proportionality constant" +msgstr "Коэффициент пропорциональности" +#: ../Beremiz_service.py:440 +msgid "Publishing service on local network" +msgstr "Сервис доступен в локальной сети" +#: ../connectors/PYRO/__init__.py:118 +msgid "Pyro exception: %s\n" +msgstr "Исключение Pyro: %s\n" +#: ../Beremiz_service.py:427 +msgid "Pyro object's uri :" +#: ../Beremiz_service.py:426 #: ../py_ext/PythonEditor.py:81
@@ -2767,43 +2817,22 @@
-#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:252
+#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:273 -#: ../plcopen/definitions.py:54
-"The RS bistable is a latch where the Reset dominates."
-"RS триггер - переключатель с доминантой выключения."
-#: ../plcopen/definitions.py:68
-"The RAMP function block is modelled on example given in the standard."
-"Ограничитель скорости изменения сигнала\n"
-"Функциональный блок написан согласно примеру, приведенному в стандарте."
+msgstr "Длительность нарастания" #: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
-#: ../ProjectController.py:1794
+#: ../ProjectController.py:1810 -#: ../plcopen/definitions.py:64
-"The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on."
-"Часы реального времени используется для получения меток времени, установки даты и времени дня в отчетах, сообщениях об авариях и пр."
msgid "Really delete node '%s'?"
msgstr "Действительно удалить элемент '%s'?"
@@ -2824,11 +2853,11 @@
msgid "Regular expression"
msgstr "Регулярное выражение"
-#: ../dialogs/FindInPouDialog.py:100
+#: ../dialogs/FindInPouDialog.py:98 msgid "Regular expressions"
msgstr "Регулярные выражения"
-#: ../editors/Viewer.py:1547
+#: ../editors/Viewer.py:1556 msgstr "Освободить значение"
@@ -2836,16 +2865,16 @@
msgid "Remainder (modulo)"
msgstr "Остаток от деления (modulo)"
msgstr "Удалить %s элемент"
msgstr "Удалить тип данных"
@@ -2877,7 +2906,7 @@
msgstr "Удалить переменную"
@@ -2909,7 +2938,10 @@
msgid "Reset search result"
msgstr "Сбросить результаты поиска"
-#: ../PLCControler.py:97 ../Beremiz.py:1066
+msgstr "Постоянная времени интегрирования" +#: ../PLCControler.py:97 ../Beremiz.py:1075 @@ -2933,14 +2965,6 @@
msgstr "Нарастающий фронт"
-#: ../plcopen/definitions.py:56
-"Rising edge detector\n"
-"The output produces a single pulse when a rising edge is detected."
-"Детектор нарастающего фронта\n"
-"На выходе формируется одиночный импульс, если обнаружен нарастающий фронт."
#: ../plcopen/iec_std.csv:65
msgstr "Циклический сдвиг влево"
@@ -2953,15 +2977,15 @@
msgstr "Округление вверх/вниз"
-#: ../ProjectController.py:1762
+#: ../ProjectController.py:1778 -#: ../ProjectController.py:1021
+#: ../ProjectController.py:1037 msgid "Runtime IO extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода для расширений ввода-вывода!\n"
-#: ../ProjectController.py:1030
+#: ../ProjectController.py:1046 msgid "Runtime library extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода для библиотеки расширений системы исполнения!\n"
@@ -2977,15 +3001,17 @@
-#: ../plcopen/definitions.py:53
-"The SR bistable is a latch where the Set dominates."
-"SR триггер - переключатель с доминантой включения."
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+#: ../PLCGenerator.py:1392 +msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\"" +msgstr "Безусловный переход в POU \"{a1}\" ссылается на несуществующий SFC шаг \"{a2}\"" +#: ../PLCGenerator.py:773 +msgid "SFC transition in POU \"%s\" must be connected." +msgstr "SFC переход в POU \"%s\" должен быть подключен." +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36
@@ -3002,6 +3028,9 @@
+msgstr "Период сэмплирования" #: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:327
@@ -3015,6 +3044,10 @@
+#: ../ProjectController.py:420 +msgid "Save path is the same as path of a project! \n" +msgstr "Выбранный путь совпадает с путём проекта!\n" #: ../dialogs/SearchInProjectDialog.py:69
msgstr "Область действия"
@@ -3041,7 +3074,7 @@
msgid "Select a variable class:"
msgstr "Выберите класс переменной:"
-#: ../ProjectController.py:1179
+#: ../ProjectController.py:1195 msgid "Select an editor:"
msgstr "Выберите редактор:"
@@ -3053,6 +3086,10 @@
+#: ../ProjectController.py:427 +msgid "Selected directory already contains another project. Overwrite? \n" +msgstr "Выбранная директория уже содержит другой проект. Перезаписать?\n" #: ../plcopen/iec_std.csv:70
@@ -3065,14 +3102,6 @@
msgid "Selection Divergence"
msgstr "Альтернативное ветвление"
-#: ../plcopen/definitions.py:55
-"The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
-"Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам."
#: ../dialogs/DiscoveryDialog.py:82
msgid "Service Discovery"
@@ -3085,6 +3114,9 @@
#: ../plcopen/iec_std.csv:62
@@ -3093,7 +3125,7 @@
-#: ../ProjectController.py:1788
+#: ../ProjectController.py:1804 msgid "Show IEC code generated by PLCGenerator"
msgstr "Показать год, сгенерированный PLCGenerator"
@@ -3105,7 +3137,7 @@
msgid "Show Master generated by config_utils"
msgstr "Показать ведущий узел сгенерированный config_utils"
-#: ../ProjectController.py:1786
+#: ../ProjectController.py:1802 @@ -3123,12 +3155,17 @@
#: ../editors/ResourceEditor.py:68
-msgstr "Источник прерывания"
#: ../targets/toolchain_makefile.py:126
msgid "Source didn't change, no build.\n"
msgstr "Исходные файлы не изменились, сборка не нужна.\n"
+#: ../PLCGenerator.py:397 +msgid "Source signal has to be defined for single task '{a1}' in resource '{a2}.{a3}'." +msgstr "Для задачи '{a1}' в ресурсе '{a2}.{a3}' отсутсвует задание источника." #: ../plcopen/iec_std.csv:23
msgid "Square root (base 2)"
msgstr "Квадратный корень"
@@ -3137,48 +3174,48 @@
msgid "Standard function blocks"
msgstr "Стандартные функциональные блоки"
-#: ../ProjectController.py:1764 ../Beremiz_service.py:240
+#: ../ProjectController.py:1780 ../Beremiz_service.py:261 -#: ../ProjectController.py:968
+#: ../ProjectController.py:984 msgid "Start build in %s\n"
msgstr "Сборка запущена в %s\n"
-#: ../ProjectController.py:1282
+#: ../ProjectController.py:1298 -#: ../ProjectController.py:1570
+#: ../ProjectController.py:1586 -msgstr "ПЛК запускается\\n\n"
+msgstr "ПЛК запускается\n" -#: ../editors/Viewer.py:553 ../editors/Viewer.py:2333
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2342 -#: ../ProjectController.py:1767
+#: ../ProjectController.py:1783 -#: ../Beremiz_service.py:241
+#: ../Beremiz_service.py:262 -#: ../ProjectController.py:1769
+#: ../ProjectController.py:1785 msgstr "Остановить запущенный ПЛК"
-#: ../ProjectController.py:1283
+#: ../ProjectController.py:1299 -#: ../ProjectController.py:1542
+#: ../ProjectController.py:1558 msgid "Stopping debugger...\n"
msgstr "Остановка отладчика...\n"
@@ -3194,7 +3231,7 @@
-#: ../ProjectController.py:1007
+#: ../ProjectController.py:1023 msgid "Successfully built.\n"
msgstr "Сборка прошла успешно.\n"
@@ -3211,7 +3248,7 @@
-#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:166
+#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:172 msgid "Syntax error in regular expression of pattern to search!"
msgstr "Синтаксическая ошибка в регулярном выражении шаблона поиска!"
@@ -3238,6 +3275,24 @@
+msgid "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control." +msgstr "ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью." +msgid "The RAMP function block is modelled on example given in the standard." +msgstr "Ограничитель скорости изменения сигнала. Функциональный блок написан согласно примеру, приведенному в стандарте." +msgid "The RS bistable is a latch where the Reset dominates." +msgstr "RS-триггер с приоритетом выключения." +msgid "The SR bistable is a latch where the Set dominates." +msgstr "SR-триггер с приоритетом включения." +msgid "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN." +msgstr "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN." +msgid "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value." +msgstr "Декрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг нулевого значения с исходного заданного значения." #: ../editors/FileManagementPanel.py:180
@@ -3251,11 +3306,44 @@
msgid "The group of block must be coherent!"
msgstr "Группа блоков должна быть связанной!"
+msgid "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2." +msgstr "Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2." +msgid "The integral function block integrates the value of input XIN over time." +msgstr "Функциональный блок интегрирует входное значение XIN во времени." +msgid "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false." +msgstr "Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE." +msgid "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true." +msgstr "Таймер выключения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE." +msgid "The output produces a single pulse when a falling edge is detected." +msgstr "Детектор падающего фронта. На выходе формируется одиночный импульс, если обнаружен падающий фронт." +msgid "The output produces a single pulse when a rising edge is detected." +msgstr "Детектор нарастающего фронта. На выходе формируется одиночный импульс, если обнаружен нарастающий фронт." +msgid "The pulse timer can be used to generate output pulses of a given time duration." +msgstr "Генератор импульсов. Функциональный блок используется для генерации выходных импульсов заданной длительности." +msgid "The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on." +msgstr "Часы реального времени используется для получения меток времени, установки даты и времени дня в отчетах, сообщениях об авариях и пр." +msgid "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources." +msgstr "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам." +msgid "The up-counter can be used to signal when a count has reached a maximum value." +msgstr "Инкрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг максимального значения." +msgid "The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other." +msgstr "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому." #: ../Beremiz.py:640 ../IDEFrame.py:1011
msgid "There are changes, do you want to save?"
msgstr "Хотите сохранить изменения?"
-#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
+#: ../IDEFrame.py:1655 ../IDEFrame.py:1674 msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "Существует POU с именем \"%s\". Это может вызвать конфликт. Хотите продолжить?"
@@ -3314,50 +3402,50 @@
-#: ../ProjectController.py:1776
+#: ../ProjectController.py:1792 -#: ../ProjectController.py:1778
+#: ../ProjectController.py:1794 -#: ../ProjectController.py:1742
+#: ../ProjectController.py:1758 msgid "Transfer completed successfully.\n"
msgstr "Передача успешно завершена.\n"
-#: ../ProjectController.py:1744
+#: ../ProjectController.py:1760 msgid "Transfer failed\n"
msgstr "Ошибка передачи\n"
-#: ../editors/Viewer.py:554 ../editors/Viewer.py:2335 ../editors/Viewer.py:2362
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2344 ../editors/Viewer.py:2371 -#: ../PLCGenerator.py:1506
+#: ../PLCGenerator.py:1518 msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
msgstr "Тело перехода \"%s\" должно содержать выходную переменную или катушку, ссылающуюся на его имя"
-#: ../dialogs/PouTransitionDialog.py:84
+#: ../dialogs/PouTransitionDialog.py:89 -#: ../dialogs/PouTransitionDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:58 -#: ../PLCGenerator.py:1597
+#: ../PLCGenerator.py:1609 msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
msgstr "Переход с содержимым \"{a1}\" не подключен к следующему шагу в POU \"{a2}\""
-#: ../PLCGenerator.py:1586
+#: ../PLCGenerator.py:1598 msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
msgstr "Переход с содержимым \"{a1}\" не подключен к предыдущему шагу в POU \"{a2}\""
-#: ../plcopen/plcopen.py:1322
+#: ../plcopen/plcopen.py:1318 msgid "Transition with name %s doesn't exist!"
msgstr "Переход с именем %s отсутствует!"
@@ -3366,7 +3454,7 @@
-#: ../dialogs/AboutDialog.py:122
+#: ../dialogs/AboutDialog.py:123 @@ -3374,6 +3462,10 @@
+#: ../Beremiz_service.py:476 +msgid "Twisted unavailable." +msgstr "Модуль Twisted недоступен." #: ../dialogs/ActionBlockDialog.py:38 ../editors/ResourceEditor.py:83
#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
#: ../controls/VariablePanel.py:54
@@ -3420,7 +3512,7 @@
msgid "Unable to get Xenomai's %s \n"
msgstr "Невозможно получить Xenomai %s\n"
-#: ../PLCGenerator.py:953 ../PLCGenerator.py:1206
+#: ../PLCGenerator.py:961 ../PLCGenerator.py:1214 msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
msgstr "Неопределенный тип блока \"{a1}\" в POU \"{a2}\""
@@ -3457,22 +3549,6 @@
msgid "Unrecognized data size \"%s\""
msgstr "Неопределенный размер данных \"%s\""
-#: ../plcopen/definitions.py:58
-"The up-counter can be used to signal when a count has reached a maximum value."
-"Инкрементный счетчик\n"
-"Инкрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг максимального значения."
-#: ../plcopen/definitions.py:60
-"The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other."
-"Инкрементный/декрементный счетчик\n"
-"Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому."
#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:798
msgstr "Пользовательские типы данных"
@@ -3494,7 +3570,7 @@
#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
-#: ../editors/Viewer.py:2365
+#: ../editors/Viewer.py:2374 @@ -3530,6 +3606,10 @@
+#: ../Beremiz_service.py:586 +msgid "WAMP client startup failed. " +msgstr "Ошибка импорта WAMP. " #: ../connectors/WAMP/__init__.py:91
msgid "WAMP connecting to URL : %s\n"
@@ -3544,6 +3624,10 @@
msgid "WAMP connection to '%s' failed.\n"
msgstr "Не удалось установить WAMP подключение к %s.\n"
+#: ../Beremiz_service.py:562 +msgid "WAMP import failed :" +msgstr "Ошибка импорта WAMP :" #: ../wxglade_hmi/wxglade_hmi.py:35
@@ -3552,7 +3636,7 @@
-#: ../ProjectController.py:600
+#: ../ProjectController.py:616 msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr "Предупреждения в ST/IL/SFC коде генераторе:\n"
@@ -3567,11 +3651,11 @@
-#: ../dialogs/FindInPouDialog.py:95
+#: ../dialogs/FindInPouDialog.py:93 msgstr "Продолжить поиск сначала"
-#: ../dialogs/AboutDialog.py:121
+#: ../dialogs/AboutDialog.py:122 @@ -3653,6 +3737,12 @@
+msgid "first input parameter" +msgstr "первый входной параметр" +msgid "first output parameter" +msgstr "первый выходной параметр" #: ../dialogs/PouDialog.py:31
@@ -3672,6 +3762,9 @@
+msgid "internal state: 0-reset, 1-counting, 2-set" +msgstr "состояние: 0 - сброс, 1 - счёт, 2 - установка" #: ../PLCOpenEditor.py:399
@@ -3697,6 +3790,12 @@
+msgid "second input parameter" +msgstr "второй входной параметр" +msgid "second output parameter" +msgstr "второй выходной параметр" #: ../dialogs/DurationEditorDialog.py:152
@@ -3766,6 +3865,9 @@
+#~ msgid " -> Nothing to do\n" +#~ msgstr " -> Ничего не нужно делать\n" @@ -3784,21 +3886,59 @@
#~ msgid "Clear the graph values"
#~ msgstr "Очистить значения на графике"
+#~ "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN." +#~ "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN." +#~ "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value." +#~ "Декрементный счетчик\n" +#~ "Декрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг нулевого значения с исходного заданного значения." #~ msgid "Enable_Native_Library"
#~ msgstr "Разрешить библиотеку Native"
+#~ "Falling edge detector\n" +#~ "The output produces a single pulse when a falling edge is detected." +#~ "Детектор падающего фронта\n" +#~ "На выходе формируется одиночный импульс, если обнаружен падающий фронт." #~ msgid "Form isn't complete. Pattern to search must be filled!"
#~ msgstr "Форма заполнена неполностью. Шаблон поиска должен быть заполнен!"
+#~ "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2." +#~ "Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2." #~ msgid "IEC-61131-3 code generation failed !\n"
#~ msgstr "Неудачная генерация МЭК-61131-3 кода!\n"
#~ msgstr "Исходное значение"
+#~ "The integral function block integrates the value of input XIN over time." +#~ "Функциональный блок интегрирует входное значение XIN во времени." #~ msgid "Move debug variable down"
#~ msgstr "Переместить отлаживаемую переменную ниже"
@@ -3811,18 +3951,102 @@
#~ msgid "No output variable found"
#~ msgstr "Выходная переменная не найдена"
+#~ "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false." +#~ "Таймер выключения\n" +#~ "Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE." +#~ "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true." +#~ "Таймер выключения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE." +#~ "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control." +#~ "ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью." +#~ "The pulse timer can be used to generate output pulses of a given time duration." +#~ "Генератор импульсов\n" +#~ "Функциональный блок используется для генерации выходных импульсов заданной длительности." +#~ "The RS bistable is a latch where the Reset dominates." +#~ "RS триггер - переключатель с доминантой выключения." +#~ "The RAMP function block is modelled on example given in the standard." +#~ "Ограничитель скорости изменения сигнала\n" +#~ "Функциональный блок написан согласно примеру, приведенному в стандарте." +#~ "The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on." +#~ "Часы реального времени используется для получения меток времени, установки даты и времени дня в отчетах, сообщениях об авариях и пр." #~ msgid "Remove debug variable"
#~ msgstr "Удалить отлаживаемую переменную"
#~ msgid "Reset zoom and offset"
#~ msgstr "Сбросить приближение и смещение"
+#~ "Rising edge detector\n" +#~ "The output produces a single pulse when a rising edge is detected." +#~ "Детектор нарастающего фронта\n" +#~ "На выходе формируется одиночный импульс, если обнаружен нарастающий фронт." +#~ "The SR bistable is a latch where the Set dominates." +#~ "SR триггер - переключатель с доминантой включения." +#~ "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources." +#~ "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам." +#~ "The up-counter can be used to signal when a count has reached a maximum value." +#~ "Инкрементный счетчик\n" +#~ "Инкрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг максимального значения." +#~ "The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other." +#~ "Инкрементный/декрементный счетчик\n" +#~ "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому." --- a/i18n/messages.pot Thu Jan 12 14:37:55 2017 +0300
+++ b/i18n/messages.pot Thu Jan 12 14:47:15 2017 +0300
@@ -8,7 +8,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-12-01 18:27+0300\n"
+"POT-Creation-Date: 2017-01-12 14:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../PLCOpenEditor.py:408 ../Beremiz.py:1182
+#: ../PLCOpenEditor.py:408 ../Beremiz.py:1191 @@ -56,27 +56,27 @@
-#: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:66
+#: ../dialogs/PouTransitionDialog.py:99 ../dialogs/ProjectDialog.py:66 #: ../dialogs/PouActionDialog.py:91 ../dialogs/PouDialog.py:113
-#: ../ProjectController.py:1073
+#: ../ProjectController.py:1089 msgid " generation failed !\n"
-#: ../plcopen/plcopen.py:890
+#: ../plcopen/plcopen.py:881 msgid "\"%s\" Data Type doesn't exist !!!"
-#: ../plcopen/plcopen.py:908
+#: ../plcopen/plcopen.py:899 msgid "\"%s\" POU already exists !!!"
-#: ../plcopen/plcopen.py:929
+#: ../plcopen/plcopen.py:920 msgid "\"%s\" POU doesn't exist !!!"
@@ -86,12 +86,12 @@
msgid "\"%s\" can't use itself!"
-#: ../IDEFrame.py:1648 ../IDEFrame.py:1667
+#: ../IDEFrame.py:1652 ../IDEFrame.py:1671 msgid "\"%s\" config already exists!"
-#: ../plcopen/plcopen.py:476
+#: ../plcopen/plcopen.py:467 msgid "\"%s\" configuration already exists !!!"
@@ -101,7 +101,7 @@
msgid "\"%s\" data type already exists!"
-#: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:219
+#: ../dialogs/PouTransitionDialog.py:110 ../dialogs/BlockPreviewDialog.py:219 #: ../dialogs/PouActionDialog.py:102 ../editors/Viewer.py:262
#: ../editors/Viewer.py:330 ../editors/Viewer.py:354 ../editors/Viewer.py:374
#: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
@@ -110,12 +110,12 @@
msgid "\"%s\" element for this pou already exists!"
msgid "\"%s\" folder is not a valid Beremiz project\n"
-#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106 #: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
@@ -125,7 +125,7 @@
msgid "\"%s\" is a keyword. It can't be used!"
-#: ../plcopen/plcopen.py:2416
+#: ../plcopen/plcopen.py:2412 msgid "\"%s\" is an invalid value!"
@@ -135,7 +135,7 @@
msgid "\"%s\" is not a valid folder!"
-#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99
+#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104 #: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
#: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
@@ -144,7 +144,7 @@
msgid "\"%s\" is not a valid identifier!"
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
@@ -181,7 +181,7 @@
"Right value must be greater than left value."
-#: ../PLCGenerator.py:1093
+#: ../PLCGenerator.py:1101 msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
@@ -191,12 +191,12 @@
msgid "\"{a1}\" is already used by \"{a2}\"!"
-#: ../plcopen/plcopen.py:500
+#: ../plcopen/plcopen.py:491 msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
-#: ../plcopen/plcopen.py:518
+#: ../plcopen/plcopen.py:509 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
@@ -249,15 +249,15 @@
-#: ../plcopen/plcopen.py:1649 ../plcopen/plcopen.py:1656
-#: ../plcopen/plcopen.py:1668 ../plcopen/plcopen.py:1676
-#: ../plcopen/plcopen.py:1686
+#: ../plcopen/plcopen.py:1645 ../plcopen/plcopen.py:1652 +#: ../plcopen/plcopen.py:1664 ../plcopen/plcopen.py:1672 +#: ../plcopen/plcopen.py:1682 msgid "%s body don't have instances!"
-#: ../plcopen/plcopen.py:1704 ../plcopen/plcopen.py:1711
-#: ../plcopen/plcopen.py:1718
+#: ../plcopen/plcopen.py:1700 ../plcopen/plcopen.py:1707 +#: ../plcopen/plcopen.py:1714 msgid "%s body don't have text!"
@@ -266,8 +266,8 @@
-#: ../dialogs/AboutDialog.py:64 ../dialogs/AboutDialog.py:112
-#: ../dialogs/AboutDialog.py:149
+#: ../dialogs/AboutDialog.py:65 ../dialogs/AboutDialog.py:113 +#: ../dialogs/AboutDialog.py:150 @@ -303,7 +303,7 @@
-#: ../dialogs/AboutDialog.py:63
+#: ../dialogs/AboutDialog.py:64 @@ -323,12 +323,12 @@
-#: ../controls/SearchResultPanel.py:252
+#: ../controls/SearchResultPanel.py:239 msgid "'{a1}' - {a2} match in project"
-#: ../controls/SearchResultPanel.py:254
+#: ../controls/SearchResultPanel.py:241 msgid "'{a1}' - {a2} matches in project"
@@ -338,7 +338,7 @@
msgid "'{a1}' is located at {a2}\n"
-#: ../controls/SearchResultPanel.py:304
+#: ../controls/SearchResultPanel.py:291 @@ -347,7 +347,7 @@
-#: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/PouActionDialog.py:93 #: ../dialogs/PouDialog.py:115
@@ -373,15 +373,15 @@
-#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1656
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1660 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:108 #: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
-#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1626 ../IDEFrame.py:1637
+#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1628 ../IDEFrame.py:1641 msgid "A POU named \"%s\" already exists!"
@@ -396,7 +396,7 @@
#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:755
-#: ../IDEFrame.py:1628 ../IDEFrame.py:1639
+#: ../IDEFrame.py:1630 ../IDEFrame.py:1643 msgid "A variable with \"%s\" as name already exists in this pou!"
@@ -418,7 +418,7 @@
-#: ../editors/Viewer.py:555 ../editors/Viewer.py:2336
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2345 @@ -430,7 +430,7 @@
-#: ../plcopen/plcopen.py:1363
+#: ../plcopen/plcopen.py:1359 msgid "Action with name %s doesn't exist!"
@@ -443,16 +443,16 @@
-#: ../editors/Viewer.py:1091
+#: ../editors/Viewer.py:1100 #: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
-#: ../editors/Viewer.py:588 ../Beremiz.py:1051
+#: ../editors/Viewer.py:588 ../Beremiz.py:1060 -#: ../IDEFrame.py:1886 ../IDEFrame.py:1921
+#: ../IDEFrame.py:1890 ../IDEFrame.py:1925 @@ -460,11 +460,11 @@
msgid "Add C code accessing located variables synchronously"
msgid "Add Configuration"
@@ -476,7 +476,7 @@
@@ -484,11 +484,11 @@
msgid "Add Python code executed asynchronously"
-#: ../IDEFrame.py:1897 ../IDEFrame.py:1947
+#: ../IDEFrame.py:1901 ../IDEFrame.py:1951 -#: ../IDEFrame.py:1875 ../IDEFrame.py:1918
+#: ../IDEFrame.py:1879 ../IDEFrame.py:1922 @@ -500,7 +500,7 @@
msgid "Add a new initial step"
-#: ../editors/Viewer.py:2697 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2706 ../editors/SFCViewer.py:770 @@ -548,7 +548,7 @@
msgid "Adjust Block Size"
-#: ../editors/Viewer.py:1628
+#: ../editors/Viewer.py:1637 @@ -564,7 +564,7 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
-#: ../ProjectController.py:1607
+#: ../ProjectController.py:1623 msgid "Already connected. Please disconnect\n"
@@ -614,7 +614,7 @@
msgid "Author Name (optional):"
-#: ../dialogs/FindInPouDialog.py:81
+#: ../dialogs/FindInPouDialog.py:79 @@ -672,7 +672,7 @@
msgid "Bitwise inverting"
-#: ../editors/Viewer.py:525 ../editors/Viewer.py:2349
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2358 @@ -688,7 +688,7 @@
-#: ../ProjectController.py:1285
+#: ../ProjectController.py:1301 @@ -701,23 +701,23 @@
-#: ../ProjectController.py:1753
+#: ../ProjectController.py:1769 -#: ../ProjectController.py:1219
+#: ../ProjectController.py:1235 msgid "Build directory already clean\n"
-#: ../ProjectController.py:1754
+#: ../ProjectController.py:1770 msgid "Build project into build folder"
-#: ../ProjectController.py:1002
+#: ../ProjectController.py:1018 msgid "C Build crashed !\n"
-#: ../ProjectController.py:999
+#: ../ProjectController.py:1015 msgid "C Build failed.\n"
@@ -725,7 +725,7 @@
-#: ../ProjectController.py:1077
+#: ../ProjectController.py:1093 msgid "C code generated successfully.\n"
@@ -742,7 +742,7 @@
-#: ../dialogs/AboutDialog.py:62
+#: ../dialogs/AboutDialog.py:63 @@ -758,8 +758,8 @@
-#: ../plcopen/plcopen.py:1588 ../plcopen/plcopen.py:1602
-#: ../plcopen/plcopen.py:1626 ../plcopen/plcopen.py:1642
+#: ../plcopen/plcopen.py:1584 ../plcopen/plcopen.py:1598 +#: ../plcopen/plcopen.py:1622 ../plcopen/plcopen.py:1638 msgid "Can only generate execution order on FBD networks!"
@@ -799,7 +799,7 @@
msgid "Cannot get PLC status - connection failed.\n"
-#: ../ProjectController.py:865
+#: ../ProjectController.py:881 msgid "Cannot open/parse VARIABLES.csv!\n"
@@ -808,7 +808,7 @@
msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
-#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:90
+#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:88 @@ -816,23 +816,23 @@
-#: ../Beremiz_service.py:245
+#: ../Beremiz_service.py:266 msgid "Change IP of interface to bind"
-#: ../Beremiz_service.py:244
+#: ../Beremiz_service.py:265
msgid "Change POU Type To"
-#: ../Beremiz_service.py:246
+#: ../Beremiz_service.py:267 msgid "Change Port Number"
-#: ../Beremiz_service.py:247
+#: ../Beremiz_service.py:268 msgid "Change working directory"
@@ -844,7 +844,7 @@
msgid "Choose a SVG file"
-#: ../ProjectController.py:436
+#: ../ProjectController.py:451 msgid "Choose a directory to save project"
@@ -853,7 +853,7 @@
-#: ../Beremiz.py:925 ../Beremiz.py:960
+#: ../Beremiz.py:931 ../Beremiz.py:966 @@ -862,7 +862,7 @@
msgid "Choose a value for %s:"
-#: ../Beremiz_service.py:293
+#: ../Beremiz_service.py:323 msgid "Choose a working directory "
@@ -886,7 +886,7 @@
-#: ../ProjectController.py:1757
+#: ../ProjectController.py:1773 @@ -894,11 +894,11 @@
msgid "Clean log messages"
-#: ../ProjectController.py:1759
+#: ../ProjectController.py:1775 msgid "Clean project build folder"
-#: ../ProjectController.py:1216
+#: ../ProjectController.py:1232 msgid "Cleaning the build directory\n"
@@ -910,7 +910,7 @@
msgid "Clear Execution Order"
-#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:113
+#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:111 @@ -927,7 +927,7 @@
-#: ../editors/Viewer.py:541 ../editors/Viewer.py:2357
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2366 @@ -951,7 +951,7 @@
-#: ../ProjectController.py:656
+#: ../ProjectController.py:672 msgid "Compiling IEC Program into C code...\n"
@@ -981,21 +981,21 @@
msgid "Confirm or change variable name"
-#: ../ProjectController.py:1772
+#: ../ProjectController.py:1788 -#: ../ProjectController.py:1773
+#: ../ProjectController.py:1789 msgid "Connect to the target PLC"
-#: ../ProjectController.py:1276
+#: ../ProjectController.py:1292 msgid "Connected to URI: %s"
#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
-#: ../editors/Viewer.py:2350
+#: ../editors/Viewer.py:2359 @@ -1003,21 +1003,25 @@
msgid "Connection Properties"
-#: ../ProjectController.py:1631
+#: ../ProjectController.py:1647 msgid "Connection canceled!\n"
-#: ../ProjectController.py:1656
+#: ../ProjectController.py:1672 msgid "Connection failed to %s!\n"
+#: ../connectors/PYRO/__init__.py:115 ../connectors/WAMP/__init__.py:111 +msgid "Connection lost!\n" #: ../connectors/PYRO/__init__.py:102
msgid "Connection to '%s' failed.\n"
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1585
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1594 @@ -1033,7 +1037,7 @@
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2353
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2362 @@ -1041,7 +1045,7 @@
msgid "Content Description (optional):"
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1586
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1595 @@ -1066,7 +1070,7 @@
@@ -1112,15 +1116,15 @@
msgid "Couldn't paste non-POU object."
-#: ../ProjectController.py:1573
+#: ../ProjectController.py:1589 msgid "Couldn't start PLC !\n"
-#: ../ProjectController.py:1581
+#: ../ProjectController.py:1597 msgid "Couldn't stop PLC !\n"
-#: ../ProjectController.py:1545
+#: ../ProjectController.py:1561 msgid "Couldn't stop debugger.\n"
@@ -1192,7 +1196,7 @@
msgid "Create a new step"
-#: ../dialogs/PouTransitionDialog.py:42 ../IDEFrame.py:156
+#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:156 msgid "Create a new transition"
@@ -1200,10 +1204,14 @@
msgid "Create a new variable"
-#: ../dialogs/AboutDialog.py:104
+#: ../dialogs/AboutDialog.py:105 +#: ../Beremiz_service.py:432 +msgid "Current working directory :" #: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424
@@ -1257,7 +1265,7 @@
-#: ../ProjectController.py:1678
+#: ../ProjectController.py:1694 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
@@ -1265,17 +1273,17 @@
-#: ../editors/Viewer.py:1108 ../editors/Viewer.py:3614
+#: ../editors/Viewer.py:1117 ../editors/Viewer.py:3653 -#: ../ProjectController.py:1334
+#: ../ProjectController.py:1350 msgid "Debug: Unknown variable '%s'\n"
-#: ../ProjectController.py:1332
+#: ../ProjectController.py:1348 msgid "Debug: Unsupported type to debug '%s'\n"
@@ -1284,19 +1292,19 @@
-#: ../ProjectController.py:1514
+#: ../ProjectController.py:1530 msgid "Debugger disabled\n"
-#: ../ProjectController.py:1675
+#: ../ProjectController.py:1691 -#: ../ProjectController.py:1547
+#: ../ProjectController.py:1563 msgid "Debugger stopped.\n"
-#: ../editors/Viewer.py:572 ../Beremiz.py:1055 ../IDEFrame.py:1955
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1959 @@ -1324,12 +1332,6 @@
-#: ../plcopen/definitions.py:66
-"The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
#: ../controls/VariablePanel.py:432
@@ -1338,7 +1340,7 @@
-#: ../dialogs/FindInPouDialog.py:70
+#: ../dialogs/FindInPouDialog.py:68 @@ -1350,19 +1352,19 @@
-#: ../ProjectController.py:1781
+#: ../ProjectController.py:1797 -#: ../ProjectController.py:1783
+#: ../ProjectController.py:1799 msgid "Disconnect from PLC"
-#: ../ProjectController.py:1286
+#: ../ProjectController.py:1302 -#: ../editors/Viewer.py:556 ../editors/Viewer.py:2345
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2354 @@ -1383,12 +1385,6 @@
-#: ../plcopen/definitions.py:59
-"The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
#: ../dialogs/ActionBlockDialog.py:38
@@ -1429,7 +1425,7 @@
msgid "Edit array type properties"
-#: ../editors/Viewer.py:2566 ../editors/Viewer.py:2977
+#: ../editors/Viewer.py:2575 ../editors/Viewer.py:3004 @@ -1441,11 +1437,11 @@
-#: ../editors/Viewer.py:2941
+#: ../editors/Viewer.py:2963 -#: ../ProjectController.py:1795
+#: ../ProjectController.py:1811 msgid "Edit raw IEC code added to code generated by PLCGenerator"
@@ -1461,7 +1457,7 @@
-#: ../ProjectController.py:1179
+#: ../ProjectController.py:1195 @@ -1469,7 +1465,7 @@
-#: ../ProjectController.py:1284
+#: ../ProjectController.py:1300 @@ -1477,15 +1473,15 @@
-#: ../Beremiz_service.py:299
+#: ../Beremiz_service.py:331 -#: ../Beremiz_service.py:286
+#: ../Beremiz_service.py:316 msgid "Enter a port number "
-#: ../Beremiz_service.py:277
+#: ../Beremiz_service.py:307 msgid "Enter the IP of the interface to bind"
@@ -1500,7 +1496,7 @@
#: ../dialogs/ForceVariableDialog.py:179
#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
#: ../dialogs/DurationEditorDialog.py:121
-#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:107
+#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:112 #: ../dialogs/BlockPreviewDialog.py:236 ../dialogs/ProjectDialog.py:71
#: ../dialogs/ArrayTypeDialog.py:97 ../dialogs/ArrayTypeDialog.py:103
#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py:216
@@ -1513,27 +1509,28 @@
#: ../editors/DataTypeEditor.py:584 ../editors/DataTypeEditor.py:594
#: ../editors/DataTypeEditor.py:745 ../editors/DataTypeEditor.py:752
#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:783
-#: ../ProjectController.py:293 ../controls/FolderTree.py:217
+#: ../ProjectController.py:293 ../ProjectController.py:421 +#: ../ProjectController.py:428 ../controls/FolderTree.py:217 #: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:772
-#: ../Beremiz.py:1194 ../IDEFrame.py:1003 ../IDEFrame.py:1614
-#: ../IDEFrame.py:1651 ../IDEFrame.py:1656 ../IDEFrame.py:1670
-#: ../IDEFrame.py:1675 ../Beremiz_service.py:190
+#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1614 +#: ../IDEFrame.py:1655 ../IDEFrame.py:1660 ../IDEFrame.py:1674 +#: ../IDEFrame.py:1679 ../Beremiz_service.py:211 -#: ../ProjectController.py:711
+#: ../ProjectController.py:727 msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
-#: ../ProjectController.py:703
+#: ../ProjectController.py:719 msgid "Error : IEC to C compiler returned %d\n"
-#: ../ProjectController.py:605
+#: ../ProjectController.py:621 "Error in ST/IL/SFC code generator :\n"
@@ -1557,7 +1554,7 @@
msgid "Error: No PLC built\n"
-#: ../ProjectController.py:1650
+#: ../ProjectController.py:1666 msgid "Exception while connecting %s!\n"
@@ -1602,16 +1599,16 @@
-#: ../ProjectController.py:724
+#: ../ProjectController.py:740 msgid "Extracting Located Variables...\n"
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
-#: ../ProjectController.py:1713
+#: ../ProjectController.py:1729 msgid "Failed : Must build before transfer.\n"
@@ -1619,13 +1616,7 @@
-#: ../plcopen/definitions.py:57
-"Falling edge detector\n"
-"The output produces a single pulse when a falling edge is detected."
-#: ../ProjectController.py:992
+#: ../ProjectController.py:1008 msgid "Fatal : cannot get builder.\n"
@@ -1650,7 +1641,7 @@
#: ../dialogs/SearchInProjectDialog.py:100 ../dialogs/FindInPouDialog.py:36
-#: ../dialogs/FindInPouDialog.py:108 ../IDEFrame.py:375
+#: ../dialogs/FindInPouDialog.py:106 ../IDEFrame.py:375 @@ -1666,7 +1657,7 @@
-#: ../dialogs/FindInPouDialog.py:59
+#: ../dialogs/FindInPouDialog.py:57 @@ -1674,7 +1665,7 @@
msgid "Force runtime reload\n"
-#: ../editors/Viewer.py:1544
+#: ../editors/Viewer.py:1553 @@ -1682,14 +1673,14 @@
msgid "Forcing Variable Value"
-#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:97
+#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:102 #: ../dialogs/ProjectDialog.py:70 ../dialogs/PouActionDialog.py:94
#: ../dialogs/PouDialog.py:116
msgid "Form isn't complete. %s must be filled!"
-#: ../dialogs/SFCStepDialog.py:142 ../dialogs/FBDBlockDialog.py:232
+#: ../dialogs/SFCStepDialog.py:144 ../dialogs/FBDBlockDialog.py:232 #: ../dialogs/ConnectionDialog.py:160
msgid "Form isn't complete. Name must be filled!"
@@ -1698,11 +1689,11 @@
msgid "Form isn't complete. Valid block type must be selected!"
-#: ../dialogs/FindInPouDialog.py:76
+#: ../dialogs/FindInPouDialog.py:74 -#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1742
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1746 @@ -1710,8 +1701,8 @@
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1741
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1745 @@ -1740,7 +1731,7 @@
-#: ../ProjectController.py:596
+#: ../ProjectController.py:612 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
@@ -1768,6 +1759,10 @@
+#: ../runtime/NevowServer.py:181 +msgid "HTTP interface port :" #: ../controls/ProjectPropertiesPanel.py:120
@@ -1784,14 +1779,7 @@
-#: ../plcopen/definitions.py:69
-"The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouActionDialog.py:31 ../dialogs/PouDialog.py:36 @@ -1799,7 +1787,7 @@
-#: ../Beremiz_service.py:278 ../Beremiz_service.py:279
+#: ../Beremiz_service.py:308 ../Beremiz_service.py:309 @@ -1807,12 +1795,12 @@
-#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1571
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1580 #: ../controls/VariablePanel.py:71
-#: ../editors/Viewer.py:1091
+#: ../editors/Viewer.py:1100 @@ -1859,7 +1847,7 @@
#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1569 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1578 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
@@ -1873,7 +1861,7 @@
-#: ../plcopen/plcopen.py:1695
+#: ../plcopen/plcopen.py:1691 msgid "Instance with id %d doesn't exist!"
@@ -1882,12 +1870,6 @@
-#: ../plcopen/definitions.py:65
-"The integral function block integrates the value of input XIN over time."
#: ../controls/VariablePanel.py:70
@@ -1942,11 +1924,11 @@
"You must fill a numeric value."
-#: ../editors/Viewer.py:557 ../editors/Viewer.py:2334
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2343 -#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
@@ -1956,7 +1938,7 @@
msgid "Ladder element with id %d is on more than one rung."
-#: ../dialogs/PouTransitionDialog.py:86 ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouTransitionDialog.py:91 ../dialogs/PouActionDialog.py:83 #: ../dialogs/PouDialog.py:104
@@ -1965,20 +1947,20 @@
msgid "Language (optional):"
-#: ../dialogs/PouTransitionDialog.py:60 ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouTransitionDialog.py:65 ../dialogs/PouActionDialog.py:56 #: ../dialogs/PouDialog.py:73
-#: ../ProjectController.py:1719
+#: ../ProjectController.py:1735 msgid "Latest build already matches current target. Transfering anyway...\n"
-#: ../Beremiz_service.py:250
+#: ../Beremiz_service.py:271 msgid "Launch WX GUI inspector"
-#: ../Beremiz_service.py:249
+#: ../Beremiz_service.py:270 msgid "Launch a live Python shell"
@@ -2006,7 +1988,7 @@
-#: ../dialogs/AboutDialog.py:142
+#: ../dialogs/AboutDialog.py:143 @@ -2026,7 +2008,7 @@
-#: ../ProjectController.py:1625
+#: ../ProjectController.py:1641 msgid "Local service discovery failed!\n"
@@ -2114,7 +2096,7 @@
-#: ../PLCGenerator.py:778 ../PLCGenerator.py:1222
+#: ../PLCGenerator.py:786 ../PLCGenerator.py:1230 msgid "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
@@ -2193,7 +2175,7 @@
-#: ../Beremiz_service.py:300
+#: ../Beremiz_service.py:332 msgid "Name must not be null!"
@@ -2210,6 +2192,14 @@
+#: ../Beremiz_service.py:578 +msgid "Nevow Web service failed. " +#: ../Beremiz_service.py:554 +msgid "Nevow/Athena import failed :" #: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:321
@@ -2223,16 +2213,16 @@
-#: ../ProjectController.py:1747
+#: ../ProjectController.py:1763 msgid "No PLC to transfer (did build succeed ?)\n"
-#: ../PLCGenerator.py:1619
+#: ../PLCGenerator.py:1631 msgid "No body defined in \"%s\" POU"
-#: ../PLCGenerator.py:798 ../PLCGenerator.py:1233
+#: ../PLCGenerator.py:806 ../PLCGenerator.py:1241 msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
@@ -2243,12 +2233,12 @@
-#: ../PLCGenerator.py:821
+#: ../PLCGenerator.py:829 msgid "No informations found for \"%s\" block"
-#: ../PLCGenerator.py:1186
+#: ../PLCGenerator.py:1194 msgid "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
@@ -2276,7 +2266,7 @@
msgid "No valid value selected!"
-#: ../PLCGenerator.py:1617
+#: ../PLCGenerator.py:1629 msgid "No variable defined in \"%s\" POU"
@@ -2311,18 +2301,6 @@
-#: ../plcopen/definitions.py:63
-"The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-#: ../plcopen/definitions.py:62
-"The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
#: ../dialogs/SearchInProjectDialog.py:86
@@ -2340,7 +2318,7 @@
msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
-#: ../ProjectController.py:1799
+#: ../ProjectController.py:1815 msgid "Open a file explorer to manage project files"
@@ -2352,7 +2330,7 @@
-#: ../dialogs/FindInPouDialog.py:85
+#: ../dialogs/FindInPouDialog.py:83 @@ -2366,7 +2344,7 @@
#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1570 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1579 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
@@ -2380,12 +2358,6 @@
-#: ../plcopen/definitions.py:67
-"The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
#: ../targets/toolchain_gcc.py:131
@@ -2394,10 +2366,18 @@
-#: ../ProjectController.py:976
+#: ../ProjectController.py:992 msgid "PLC code generation failed !\n"
+#: ../Beremiz_service.py:295 +msgid "PLC is empty or already started." +#: ../Beremiz_service.py:302 +msgid "PLC is not started." #: ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:309
@@ -2458,7 +2438,7 @@
msgid "Page Size (optional):"
@@ -2471,7 +2451,7 @@
@@ -2483,7 +2463,7 @@
-#: ../editors/Viewer.py:2697 ../editors/Viewer.py:2941
+#: ../editors/Viewer.py:2706 ../editors/Viewer.py:2963 #: ../editors/SFCViewer.py:770
msgid "Please choose a target"
@@ -2492,7 +2472,7 @@
msgid "Please enter a block name"
-#: ../editors/Viewer.py:2567 ../editors/Viewer.py:2978
+#: ../editors/Viewer.py:2576 ../editors/Viewer.py:3005 msgid "Please enter comment text"
@@ -2501,20 +2481,24 @@
msgid "Please enter step name"
+#: ../Beremiz_service.py:194 +msgid "Please enter text" #: ../dialogs/ForceVariableDialog.py:163
msgid "Please enter value for a \"%s\" variable:"
-#: ../Beremiz_service.py:287
+#: ../Beremiz_service.py:317 msgid "Port number must be 0 <= port <= 65535!"
-#: ../Beremiz_service.py:287
+#: ../Beremiz_service.py:317 msgid "Port number must be an integer!"
-#: ../editors/Viewer.py:536 ../editors/Viewer.py:2358
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2367 @@ -2572,8 +2556,8 @@
msgid "Product Version (required):"
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1740
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1744 @@ -2598,7 +2582,7 @@
-#: ../ProjectController.py:1798
+#: ../ProjectController.py:1814 @@ -2637,10 +2621,21 @@
-#: ../plcopen/definitions.py:61
-"The pulse timer can be used to generate output pulses of a given time duration."
+#: ../Beremiz_service.py:440 +msgid "Publishing service on local network" +#: ../connectors/PYRO/__init__.py:118 +msgid "Pyro exception: %s\n" +#: ../Beremiz_service.py:427 +msgid "Pyro object's uri :" +#: ../Beremiz_service.py:426 #: ../py_ext/PythonEditor.py:81
@@ -2655,37 +2650,19 @@
-#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:252
+#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:273 -#: ../plcopen/definitions.py:54
-"The RS bistable is a latch where the Reset dominates."
-#: ../plcopen/definitions.py:68
-"The RAMP function block is modelled on example given in the standard."
#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
-#: ../ProjectController.py:1794
+#: ../ProjectController.py:1810 -#: ../plcopen/definitions.py:64
-"The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on."
msgid "Really delete node '%s'?"
@@ -2706,11 +2683,11 @@
msgid "Regular expression"
-#: ../dialogs/FindInPouDialog.py:100
+#: ../dialogs/FindInPouDialog.py:98 msgid "Regular expressions"
-#: ../editors/Viewer.py:1547
+#: ../editors/Viewer.py:1556 @@ -2718,16 +2695,16 @@
msgid "Remainder (modulo)"
@@ -2759,7 +2736,7 @@
@@ -2791,7 +2768,7 @@
msgid "Reset search result"
-#: ../PLCControler.py:97 ../Beremiz.py:1066
+#: ../PLCControler.py:97 ../Beremiz.py:1075 @@ -2815,12 +2792,6 @@
-#: ../plcopen/definitions.py:56
-"Rising edge detector\n"
-"The output produces a single pulse when a rising edge is detected."
#: ../plcopen/iec_std.csv:65
@@ -2833,15 +2804,15 @@
-#: ../ProjectController.py:1762
+#: ../ProjectController.py:1778 -#: ../ProjectController.py:1021
+#: ../ProjectController.py:1037 msgid "Runtime IO extensions C code generation failed !\n"
-#: ../ProjectController.py:1030
+#: ../ProjectController.py:1046 msgid "Runtime library extensions C code generation failed !\n"
@@ -2857,13 +2828,17 @@
-#: ../plcopen/definitions.py:53
-"The SR bistable is a latch where the Set dominates."
-#: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
+#: ../PLCGenerator.py:1392 +msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\"" +#: ../PLCGenerator.py:773 +msgid "SFC transition in POU \"%s\" must be connected." +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36
@@ -2893,6 +2868,10 @@
+#: ../ProjectController.py:420 +msgid "Save path is the same as path of a project! \n" #: ../dialogs/SearchInProjectDialog.py:69
@@ -2919,7 +2898,7 @@
msgid "Select a variable class:"
-#: ../ProjectController.py:1179
+#: ../ProjectController.py:1195 msgid "Select an editor:"
@@ -2931,6 +2910,10 @@
+#: ../ProjectController.py:427 +msgid "Selected directory already contains another project. Overwrite? \n" #: ../plcopen/iec_std.csv:70
@@ -2943,12 +2926,6 @@
msgid "Selection Divergence"
-#: ../plcopen/definitions.py:55
-"The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
#: ../dialogs/DiscoveryDialog.py:82
msgid "Service Discovery"
@@ -2969,7 +2946,7 @@
-#: ../ProjectController.py:1788
+#: ../ProjectController.py:1804 msgid "Show IEC code generated by PLCGenerator"
@@ -2981,7 +2958,7 @@
msgid "Show Master generated by config_utils"
-#: ../ProjectController.py:1786
+#: ../ProjectController.py:1802 @@ -3005,6 +2982,11 @@
msgid "Source didn't change, no build.\n"
+#: ../PLCGenerator.py:397 +msgid "Source signal has to be defined for single task '{a1}' in resource '{a2}.{a3}'." #: ../plcopen/iec_std.csv:23
msgid "Square root (base 2)"
@@ -3013,20 +2995,20 @@
msgid "Standard function blocks"
-#: ../ProjectController.py:1764 ../Beremiz_service.py:240
+#: ../ProjectController.py:1780 ../Beremiz_service.py:261 -#: ../ProjectController.py:968
+#: ../ProjectController.py:984 msgid "Start build in %s\n"
-#: ../ProjectController.py:1282
+#: ../ProjectController.py:1298 -#: ../ProjectController.py:1570
+#: ../ProjectController.py:1586 @@ -3034,27 +3016,27 @@
-#: ../editors/Viewer.py:553 ../editors/Viewer.py:2333
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2342 -#: ../ProjectController.py:1767
+#: ../ProjectController.py:1783 -#: ../Beremiz_service.py:241
+#: ../Beremiz_service.py:262 -#: ../ProjectController.py:1769
+#: ../ProjectController.py:1785 -#: ../ProjectController.py:1283
+#: ../ProjectController.py:1299 -#: ../ProjectController.py:1542
+#: ../ProjectController.py:1558 msgid "Stopping debugger...\n"
@@ -3070,7 +3052,7 @@
-#: ../ProjectController.py:1007
+#: ../ProjectController.py:1023 msgid "Successfully built.\n"
@@ -3078,7 +3060,7 @@
msgid "Switch perspective"
-#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:166
+#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:172 msgid "Syntax error in regular expression of pattern to search!"
@@ -3117,7 +3099,7 @@
msgid "There are changes, do you want to save?"
-#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
+#: ../IDEFrame.py:1655 ../IDEFrame.py:1674 msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
@@ -3174,50 +3156,50 @@
-#: ../ProjectController.py:1776
+#: ../ProjectController.py:1792 -#: ../ProjectController.py:1778
+#: ../ProjectController.py:1794 -#: ../ProjectController.py:1742
+#: ../ProjectController.py:1758 msgid "Transfer completed successfully.\n"
-#: ../ProjectController.py:1744
+#: ../ProjectController.py:1760 msgid "Transfer failed\n"
-#: ../editors/Viewer.py:554 ../editors/Viewer.py:2335 ../editors/Viewer.py:2362
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2344 ../editors/Viewer.py:2371 -#: ../PLCGenerator.py:1506
+#: ../PLCGenerator.py:1518 msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
-#: ../dialogs/PouTransitionDialog.py:84
+#: ../dialogs/PouTransitionDialog.py:89 -#: ../dialogs/PouTransitionDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:58 -#: ../PLCGenerator.py:1597
+#: ../PLCGenerator.py:1609 msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
-#: ../PLCGenerator.py:1586
+#: ../PLCGenerator.py:1598 msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
-#: ../plcopen/plcopen.py:1322
+#: ../plcopen/plcopen.py:1318 msgid "Transition with name %s doesn't exist!"
@@ -3226,7 +3208,7 @@
-#: ../dialogs/AboutDialog.py:122
+#: ../dialogs/AboutDialog.py:123 @@ -3234,6 +3216,10 @@
+#: ../Beremiz_service.py:476 +msgid "Twisted unavailable." #: ../dialogs/ActionBlockDialog.py:38 ../editors/ResourceEditor.py:83
#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
#: ../controls/VariablePanel.py:54
@@ -3277,7 +3263,7 @@
msgid "Unable to get Xenomai's %s \n"
-#: ../PLCGenerator.py:953 ../PLCGenerator.py:1206
+#: ../PLCGenerator.py:961 ../PLCGenerator.py:1214 msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
@@ -3314,18 +3300,6 @@
msgid "Unrecognized data size \"%s\""
-#: ../plcopen/definitions.py:58
-"The up-counter can be used to signal when a count has reached a maximum value."
-#: ../plcopen/definitions.py:60
-"The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other."
#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:798
@@ -3347,7 +3321,7 @@
#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
-#: ../editors/Viewer.py:2365
+#: ../editors/Viewer.py:2374 @@ -3383,6 +3357,10 @@
+#: ../Beremiz_service.py:586 +msgid "WAMP client startup failed. " #: ../connectors/WAMP/__init__.py:91
msgid "WAMP connecting to URL : %s\n"
@@ -3397,6 +3375,10 @@
msgid "WAMP connection to '%s' failed.\n"
+#: ../Beremiz_service.py:562 +msgid "WAMP import failed :" #: ../wxglade_hmi/wxglade_hmi.py:35
@@ -3405,7 +3387,7 @@
-#: ../ProjectController.py:600
+#: ../ProjectController.py:616 msgid "Warnings in ST/IL/SFC code generator :\n"
@@ -3417,11 +3399,11 @@
-#: ../dialogs/FindInPouDialog.py:95
+#: ../dialogs/FindInPouDialog.py:93 -#: ../dialogs/AboutDialog.py:121
+#: ../dialogs/AboutDialog.py:122 @@ -3556,6 +3538,7 @@
msgid "CanFestivalSlaveNode"
@@ -3672,3 +3655,156 @@
+#: Extra TC6 documentation strings +msgid "0 - current time, 1 - load time from PDT" +msgid "Datetime, current or relative to PDT" +msgid "The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on." +msgid "1 = integrate, 0 = hold" +msgid "Overriding reset" +msgid "Integrated output" +msgid "The integral function block integrates the value of input XIN over time." +msgid "Input to be differentiated" +msgid "Differentiated output" +msgid "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN." +msgid "0 - manual , 1 - automatic" +msgid "Process variable" +msgid "Manual output adjustment - Typically from transfer station" +msgid "Proportionality constant" +msgid "Derivative time constant" +msgid "FB for integral term" +msgid "FB for derivative term" +msgid "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control." +msgid "0 - track X0, 1 - ramp to/track X1" +msgid "BUSY = 1 during ramping period" +msgid "Elapsed time of ramp" +msgid "The RAMP function block is modelled on example given in the standard." +msgid "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2." +msgid "The SR bistable is a latch where the Set dominates." +msgid "The RS bistable is a latch where the Reset dominates." +msgid "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources." +msgid "The output produces a single pulse when a rising edge is detected." +msgid "The output produces a single pulse when a falling edge is detected." +msgid "The up-counter can be used to signal when a count has reached a maximum value." +msgid "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value." +msgid "The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other." +msgid "first input parameter" +msgid "second input parameter" +msgid "first output parameter" +msgid "second output parameter" +msgid "internal state: 0-reset, 1-counting, 2-set" +msgid "The pulse timer can be used to generate output pulses of a given time duration." +msgid "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true." +msgid "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."