diff --git a/cmtp/MT8121XE3/EBProject1_MT8121XE3.emtp b/cmtp/MT8121XE3/EBProject1_MT8121XE3.emtp index 05646f0..9dea2fa 100644 Binary files a/cmtp/MT8121XE3/EBProject1_MT8121XE3.emtp and b/cmtp/MT8121XE3/EBProject1_MT8121XE3.emtp differ diff --git a/cmtp/scetch/SegSketch1.emtp b/cmtp/scetch/SegSketch1.emtp new file mode 100644 index 0000000..de48376 Binary files /dev/null and b/cmtp/scetch/SegSketch1.emtp differ diff --git a/cmtp/scetch/SegSketch1_6.08.01.296.emtp b/cmtp/scetch/SegSketch1_6.08.01.296.emtp new file mode 100644 index 0000000..4eea1c2 Binary files /dev/null and b/cmtp/scetch/SegSketch1_6.08.01.296.emtp differ diff --git a/cmtp/scetch/img/Unit.png b/cmtp/scetch/img/Unit.png new file mode 100644 index 0000000..6193a33 Binary files /dev/null and b/cmtp/scetch/img/Unit.png differ diff --git a/docs/WS/Diagram1.png b/docs/WS/Diagram1.png new file mode 100644 index 0000000..bbbc888 Binary files /dev/null and b/docs/WS/Diagram1.png differ diff --git a/docs/WS/Схема1.pdf b/docs/WS/Схема1.pdf new file mode 100644 index 0000000..45333d2 Binary files /dev/null and b/docs/WS/Схема1.pdf differ diff --git a/docs/WS/Схема2.pdf b/docs/WS/Схема2.pdf new file mode 100644 index 0000000..a512838 Binary files /dev/null and b/docs/WS/Схема2.pdf differ diff --git a/export/HMI_new.xls b/export/HMI_new.xls index 32619e5..021a599 100644 Binary files a/export/HMI_new.xls and b/export/HMI_new.xls differ diff --git a/nodered/flows_10_1_3_120.json b/nodered/flows_10_1_3_120.json index 6d36067..6be771b 100644 --- a/nodered/flows_10_1_3_120.json +++ b/nodered/flows_10_1_3_120.json @@ -72,7 +72,8 @@ "56c8dc122932bed2", "3a020fc62ad49e57", "074962eb71d9e17b", - "d6138c7ab7ea1ab2" + "d6138c7ab7ea1ab2", + "b26409848ae18772" ] ] }, @@ -303,7 +304,7 @@ "type": "function", "z": "e970d5dc70d18347", "name": "increment register", - "func": "// Получаем текущее значение из хранилища или задаём начальное значение 10\nlet v = flow.get('WS_L') || 50;\n\n// Увеличиваем значение на единицу и применяем циклическое изменение в диапазоне от 10 до 30\nv = ((v + 1) > 50 ? 40 : v + 1);\n\n// Сохраняем обновленное значение в поток\nflow.set('WS_L', v);\n\n// Формируем сообщение для передачи данных\nmsg.payload = {\n value: v,\n register: 0\n};\n\n// Устанавливаем дополнительные параметры сообщения\nmsg.fc = 6; // Тип операции Modbus (запись одиночного регистра)\nmsg.unitid = 1; // Идентификатор устройства\nmsg.address = 1115; // Адрес регистра\nmsg.quantity = 1; // Количество регистров\nmsg.payload = [v];// Значение, которое будет записано\n\n// Возвращаем сформированное сообщение\nreturn msg;", + "func": "// Получаем текущее значение из хранилища или задаём начальное значение 10\nlet v = flow.get('WS_L') || 40;\n\n// Увеличиваем значение на единицу и применяем циклическое изменение в диапазоне от 10 до 30\nv = ((v + 1) > 40 ? 20 : v + 1);\n\n// Сохраняем обновленное значение в поток\nflow.set('WS_L', v);\n\n// Формируем сообщение для передачи данных\nmsg.payload = {\n value: v,\n register: 0\n};\n\n// Устанавливаем дополнительные параметры сообщения\nmsg.fc = 6; // Тип операции Modbus (запись одиночного регистра)\nmsg.unitid = 1; // Идентификатор устройства\nmsg.address = 1115; // Адрес регистра\nmsg.quantity = 1; // Количество регистров\nmsg.payload = [v];// Значение, которое будет записано\n\n// Возвращаем сформированное сообщение\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -334,8 +335,8 @@ "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", - "x": 660, - "y": 800, + "x": 680, + "y": 840, "wires": [ [], [] @@ -359,7 +360,7 @@ "delayOnStart": false, "startDelayTime": "", "x": 660, - "y": 880, + "y": 960, "wires": [ [], [] @@ -370,7 +371,7 @@ "type": "function", "z": "e970d5dc70d18347", "name": "increment register", - "func": "// Получаем текущее состояние, по умолчанию 0\nlet state = flow.get('WS_DSC1') || 0;\n\n// Гарантируем, что state — это строго 0 или 1 (на случай мусора в контексте)\nstate = (state === 1) ? 1 : 0;\n\n// Переключаем 0 <-> 1\nstate = (state === 0) ? 1 : 0;\n\n// Сохраняем новое состояние\nflow.set('WS_DSC1', state);\n\n// Жёстко привязываем payload к state (только 0 или 1)\n// Жёсткое условие через if/else\nif (state === 0) {\n msg.payload = 0;\n} else {\n msg.payload = 1;\n}\n\nreturn msg;\n\n", + "func": "// Получаем текущее состояние, по умолчанию 0\nlet state = flow.get('WS_RESERVE2') || 0;\n\n// Гарантируем, что state — это строго 0 или 1 (на случай мусора в контексте)\nstate = (state === 1) ? 1 : 0;\n\n// Переключаем 0 <-> 1\nstate = (state === 0) ? 1 : 0;\n\n// Сохраняем новое состояние\nflow.set('WS_RESERVE2', state);\n\n// Жёстко привязываем payload к state (только 0 или 1)\n// Жёсткое условие через if/else\nif (state === 0) {\n msg.payload = 1;\n} else {\n msg.payload = 0;\n}\n\nreturn msg;\n\n", "outputs": 1, "noerr": 0, "initialize": "", @@ -380,9 +381,7 @@ "y": 960, "wires": [ [ - "402b15cf9cc8430d", "2382660d4ddd0147", - "a35cf32802b244bd", "3271b1ce681c99a9" ] ] @@ -569,13 +568,32 @@ "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", - "x": 740, - "y": 960, + "x": 720, + "y": 1080, "wires": [ [], [] ] }, + { + "id": "b26409848ae18772", + "type": "function", + "z": "e970d5dc70d18347", + "name": "increment register", + "func": "// Получаем текущее состояние, по умолчанию 0\nlet state = flow.get('WS_RESERVE1') || 0;\n\n// Гарантируем, что state — это строго 0 или 1 (на случай мусора в контексте)\nstate = (state === 1) ? 1 : 0;\n\n// Переключаем 0 <-> 1\nstate = (state === 0) ? 1 : 0;\n\n// Сохраняем новое состояние\nflow.set('WS_RESERVE1', state);\n\n// Жёстко привязываем payload к state (только 0 или 1)\n// Жёсткое условие через if/else\nif (state === 0) {\n msg.payload = 0;\n} else {\n msg.payload = 1;\n}\n\nreturn msg;\n\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 390, + "y": 820, + "wires": [ + [ + "a35cf32802b244bd" + ] + ] + }, { "id": "dca8f54c186084c0", "type": "modbus-client", diff --git a/pic_libs/SVG_Pumps/SVG_Pumps.flb b/pic_libs/SVG_Pumps/SVG_Pumps.flb new file mode 100644 index 0000000..3b24d03 Binary files /dev/null and b/pic_libs/SVG_Pumps/SVG_Pumps.flb differ diff --git a/pic_libs/SVG_Valves_1/SVG_Valves_1.flb b/pic_libs/SVG_Valves_1/SVG_Valves_1.flb new file mode 100644 index 0000000..ff7e332 Binary files /dev/null and b/pic_libs/SVG_Valves_1/SVG_Valves_1.flb differ diff --git a/pic_libs/sketches/SegSketch1.emtp b/pic_libs/sketches/SegSketch1.emtp new file mode 100644 index 0000000..a6ecf5f Binary files /dev/null and b/pic_libs/sketches/SegSketch1.emtp differ diff --git a/pic_libs/sketches/scetch.jpg b/pic_libs/sketches/scetch.jpg new file mode 100644 index 0000000..7dab36e Binary files /dev/null and b/pic_libs/sketches/scetch.jpg differ