{"id":481539,"date":"2026-05-29T09:29:41","date_gmt":"2026-05-29T09:29:41","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=481539"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=481539","title":{"rendered":"\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u041f\u041b\u041a \u0431\u0435\u0437 \u0448\u043a\u0430\u0444\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0438"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>C\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0410\u0421\u0423 \u0422\u041f \u043d\u0430 4diac FORTE, PostgreSQL \u0438 FUXA SCADA<\/h2>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/998\/6b1\/45f\/9986b145f55b64bee44650bb5c2bef74.png\" alt=\"INSOL-1000 \u0432 \u0441\u0431\u043e\u0440\u0435: \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 OLED \u0438 \u043f\u044f\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0435\" width=\"560\" height=\"409\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/998\/6b1\/45f\/9986b145f55b64bee44650bb5c2bef74.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/998\/6b1\/45f\/9986b145f55b64bee44650bb5c2bef74.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>INSOL-1000 \u0432 \u0441\u0431\u043e\u0440\u0435: \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 OLED \u0438 \u043f\u044f\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0435<\/figcaption><\/div>\n<\/figure>\n<p><em>Insol-1000 \u0432 \u0441\u0431\u043e\u0440\u0435: \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 OLED \u0438 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0435.<\/em><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8fa\/64f\/5ec\/8fa64f5ec043872a9678a3b4189cb003.png\" width=\"646\" height=\"186\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8fa\/64f\/5ec\/8fa64f5ec043872a9678a3b4189cb003.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8fa\/64f\/5ec\/8fa64f5ec043872a9678a3b4189cb003.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><em>Insol-Node-10-220.<\/em><\/p>\n<p>\u00a0<\/p>\n<p>\u00a0\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0410\u0421\u0423 \u0422\u041f \u2014 \u044d\u0442\u043e \u0448\u043a\u0430\u0444 \u0441 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u0431\u0435\u043b\u0435\u0439 \u0441 \u043f\u043e\u043b\u0435\u0432\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0434\u043e\u0440\u043e\u0433\u043e, \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u0438 \u043f\u043b\u043e\u0445\u043e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0433\u0434\u0435 \u00ab\u043f\u043e\u043b\u0435\u0432\u0430\u044f\u00bb \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u0430 \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 <strong>IEC 61499<\/strong> \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u0438 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0432 \u0441\u0435\u0442\u0438 \u2014 \u0431\u0435\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041b\u041a.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0421\u043e\u0431\u0435\u0440\u0451\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445: \u041f\u041b\u041a INSOL-1000 (FreeRTOS, STM32H) \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0432\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u2014 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b, \u0441\u0447\u0438\u0442\u0430\u0435\u0442 4\u201320 \u043c\u0410, \u0440\u0443\u043b\u0438\u0442 OLED-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c; \u0448\u043b\u044e\u0437 INSOL Node (Linux) \u2014 \u044d\u0442\u043e \u00ab\u0432\u0435\u0440\u0445\u00bb \u0441 PostgreSQL, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c OPC UA \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 SCADA-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 FUXA. \u041c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u2014 UDP multicast \u043f\u043e \u0441\u0445\u0435\u043c\u0435 PUBLISH\/SUBSCRIBE. \u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u0430 \u2014 4diac IDE, runtime \u043e\u0434\u0438\u043d \u2014 4diac FORTE, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u0434\u043d\u0430, \u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<h3>TL;DR<\/h3>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4diac \u2014 open-source \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f IEC 61499 \u043e\u0442 Eclipse Foundation. IDE + \u043b\u0451\u0433\u043a\u0438\u0439 C++ runtime FORTE.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041b\u043e\u0433\u0438\u043a\u0430 \u2014 \u044d\u0442\u043e \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 (FB), \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u0438 \u0434\u0430\u043d\u043d\u044b\u043c. \u0411\u043b\u043e\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f <strong>\u0442\u043e\u043b\u044c\u043a\u043e<\/strong> \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u2014 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0438\u043b\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e IEC 61131-3.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u043f\u043e\u0442\u043e\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 <strong>\u043c\u0430\u043f\u043f\u0438\u043d\u0433<\/strong>. \u0414\u0435\u043f\u043b\u043e\u0439 \u2014 \u043f\u043e \u0441\u0435\u0442\u0438, \u0432 RAM \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430; \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f *.fboot \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 runtime \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u2014 \u0447\u0435\u0440\u0435\u0437 \u0431\u043b\u043e\u043a\u0438 PUBLISH_N \/ SUBSCRIBE_N (UDP multicast). \u0411\u0435\u0437 \u0431\u0440\u043e\u043a\u0435\u0440\u0430, \u0431\u0435\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041d\u0430 INSOL Node \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 PostgreSQL (\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435), OPC UA-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0434\u043b\u044f SCADA \u0438 MES) \u0438 FUXA \u2014 \u0432\u0435\u0431-SCADA \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 1. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 IEC 61499 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e IEC \u00a061131<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e: \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IEC 61131-3 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e <strong>\u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/strong>. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435, \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044b, \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443, \u043f\u0438\u0448\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u044b. \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u00ab\u0440\u0430\u0437\u043d\u0435\u0441\u0442\u0438\u00bb \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u2014 \u043c\u0435\u0436\u0434\u0443 \u041f\u041b\u041a \u0441\u0442\u0430\u0432\u044f\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0448\u043b\u044e\u0437\u044b, Modbus-\u043c\u043e\u0441\u0442\u044b \u0438 \u043f\u0440\u043e\u0447\u0435\u0435 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e.<\/p>\n<p>IEC 61499 \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430 \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430.<\/strong> \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435 \u0432\u0441\u0451 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u2014 \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u2014 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0437\u0436\u0435, \u0432 System Configuration.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u0421\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.<\/strong> \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0434\u043b\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u0442\u043e\u043d\u043a\u0438\u0435 \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435) \u0438 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u0438\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438). \u0411\u043b\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u044b\u0439 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u0448\u0451\u043b \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2014 \u043d\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0437\u0436\u0435. \u0426\u0438\u043a\u043b \u043e\u043f\u0440\u043e\u0441\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u043e \u2014 \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u043b\u043e\u043a\u043e\u043c E_CYCLE \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u043c.<\/p>\n<p>\u00a0<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/strong> \u0427\u0435\u0440\u0435\u0437 <strong>\u043c\u0430\u043f\u043f\u0438\u043d\u0433<\/strong> \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u0441\u0435\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432 \u00ab\u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f\u00bb \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432 \u0443\u0435\u0437\u0436\u0430\u0435\u0442 \u043d\u0430 INSOL-1000, \u0447\u0430\u0441\u0442\u044c \u2014 \u043d\u0430 INSOL Node. <\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u041f\u0440\u044f\u043c\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438.<\/strong> PUBLISH\/SUBSCRIBE \u2014 \u044d\u0442\u043e UDP multicast: \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043b\u044c\u0451\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0438 \u043b\u043e\u0432\u044f\u0442. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u043e\u043a\u0435\u0440\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/df5\/add\/d46\/df5addd461c0db4528dc3cc114a5ab2d.png\" alt=\"\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u2014 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f IEC 61499\" width=\"560\" height=\"311\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/df5\/add\/d46\/df5addd461c0db4528dc3cc114a5ab2d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/df5\/add\/d46\/df5addd461c0db4528dc3cc114a5ab2d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u2014 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f IEC 61499<\/figcaption><\/div>\n<\/figure>\n<p><em>Application Model \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0435\u0442\u044c FB. System Model \u2014 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u0435\u0442\u044c. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u043a\u043b\u0430\u0434\u0451\u0442 FB \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/em><\/p>\n<p>\u0413\u0434\u0435 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e: \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2014 \u043d\u0435\u0444\u0442\u0435\u0433\u0430\u0437\u043e\u0432\u0430\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f, \u0416\u041a\u0425, \u043f\u0440\u043e\u0442\u044f\u0436\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u0440\u043e\u0434\u0435 \u0432\u043e\u0434\u043e\u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u0441 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u043d\u043e\u0439 \u043f\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u043e\u0439. \u0412\u0441\u0451, \u0433\u0434\u0435 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0448\u043a\u0430\u0444 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u043a\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0430\u0441\u0441\u044b, \u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0440\u0435\u0448\u0430\u0435\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430.<\/p>\n<p>\u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: UDP \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0414\u043b\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0443\u0436\u043d\u0430 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0441 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u2014 SUBSCRIBE \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u00ab\u044d\u0445\u043e\u00bb, PUBLISH \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442, \u0435\u0441\u043b\u0438 \u044d\u0445\u043e \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0437\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442. \u042d\u0442\u043e \u0432\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0430\u043c\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u0414\u043b\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438\/\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e multicast \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 2. \u0427\u0442\u043e \u0432 \u043d\u0430\u0431\u043e\u0440\u0435<\/h3>\n<p>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u043e\u043b\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Runtime<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INSOL-1000<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0435\u0432\u043e\u0439 \u041f\u041b\u041a \u2014   DI\/DO\/AI\/AO, RS-485, OLED<\/p>\n<\/td>\n<td>\n<p align=\"left\">STM32H, FreeRTOS<\/p>\n<\/td>\n<td>\n<p align=\"left\">4diac FORTE \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438 FreeRTOS<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INSOL Node<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0428\u043b\u044e\u0437 \u2014 \u0411\u0414, OPC UA,   SCADA, web<\/p>\n<\/td>\n<td>\n<p align=\"left\">Linux<\/p>\n<\/td>\n<td>\n<p align=\"left\">4diac FORTE \u043d\u0430   Linux<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>INSOL-1000 \u2014 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 \u041f\u041b\u041a \u0441 \u0448\u0438\u043d\u043e\u0439 I-BUS: \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e \u0441\u043b\u0435\u0432\u0430 \u0446\u0435\u043f\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0441\u043f\u0440\u0430\u0432\u0430 \u2014 \u043c\u043e\u0434\u0443\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (I1001 8DO, I1002 8DI, I1003 \/ I1004 \u0430\u043d\u0430\u043b\u043e\u0433 4\u201320 \u043c\u0410 \u0441 HART, I1005 \u0434\u043b\u044f \u0442\u0435\u0440\u043c\u043e\u043f\u0430\u0440\/RTD). \u041c\u0435\u0436\u0434\u0443 \u041f\u041b\u041a \u0432 \u0441\u0435\u0442\u0438 \u2014 \u043e\u0434\u043d\u043e\u043f\u0430\u0440\u043d\u044b\u0439 Ethernet <strong>10BASE-T1L<\/strong> (\u0434\u043e 1500 \u043c \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 10 \u041c\u0431\u0438\u0442\/\u0441, \u043f\u0438\u0442\u0430\u043d\u0438\u0435 PoDL \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u0432\u0438\u0442\u043e\u0439 \u043f\u0430\u0440\u0435).<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5be\/59d\/d56\/5be59dd560ad6cefc0e975f5c97c2d41.png\" alt=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u043e\u0442 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e 10BASE-T1L \u0441\u043d\u0438\u0437\u0443 \u0434\u043e SCADA\/MES \u0441\u0432\u0435\u0440\u0445\u0443\" width=\"1360\" height=\"1200\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5be\/59d\/d56\/5be59dd560ad6cefc0e975f5c97c2d41.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5be\/59d\/d56\/5be59dd560ad6cefc0e975f5c97c2d41.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u043e\u0442 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e 10BASE-T1L \u0441\u043d\u0438\u0437\u0443 \u0434\u043e SCADA\/MES \u0441\u0432\u0435\u0440\u0445\u0443<\/figcaption><\/div>\n<\/figure>\n<p><em>\u041f\u043e\u043b\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443. \u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u2014 \u043e\u0431\u044b\u0447\u043d\u0430\u044f Ethernet\/Gigabit-\u0441\u0435\u0442\u044c \u0434\u043e SCADA.<\/em><\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0435\u0442\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u043b\u044c\u043a\u0443-\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u2014 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 Ethernet \u0441\u0435\u0442\u0438.<\/p>\n<p>\u0418\u0437 \u0441\u043e\u0444\u0442\u0430:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>4diac IDE<\/strong> \u2014 \u043d\u0430 \u041f\u041a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0421\u0431\u043e\u0440\u043a\u0430 \u043e\u0442 Insol \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442\u0435, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 Eclipse, \u0432 \u043d\u0435\u0451 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b .fbt-\u0442\u0438\u043f\u044b \u043f\u043e\u0434 Insol-Node \u0438 Insol-1000 \u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>4diac FORTE<\/strong> \u2014 \u043f\u0440\u043e\u0448\u0438\u0442\u044b\u0439 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 runtime. \u041d\u0430 INSOL-1000 \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 FreeRTOS, \u043d\u0430 INSOL Node \u2014 \u043f\u043e\u0432\u0435\u0440\u0445 Linux. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0435 \u0442\u0438\u043f\u044b IEC 61131-3 \u0440\u0435\u0432. 2, \u0431\u0430\u0437\u043e\u0432\u044b\u0435\/\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435\/\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0435 FB, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b, online-\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041d\u0430 INSOL Node \u043f\u043e\u0432\u0435\u0440\u0445 FORTE \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f: PostgreSQL, OPC UA \u0441\u0435\u0440\u0432\u0435\u0440 (open62541), Modbus TCP \u043a\u043b\u0438\u0435\u043d\u0442 (libmodbus), \u0438 FUXA SCADA.<\/p>\n<p>\u041a\u0430\u0447\u0430\u0435\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 4diac IDE \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 insolsoft.ru \u2192 \u00ab\u0422\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u00bb \u2192 \u00ab\u041f\u041e 4diac\u00bb. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u044d\u0442\u043e .zip \u0441 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 Type Library (\u0431\u043b\u043e\u043a\u0438 INSOL_IO, I1000_4_20MA_IN\/OUT, I1000_DISPLAY, I1000_PID, SQL_SET_*, SQL_GET_VAL) \u0438 \u043f\u0430\u0440\u043e\u0439 Application-\u0441\u0445\u0435\u043c. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0440\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u043e \u0448\u0430\u0433\u0430\u043c.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0447\u0435\u0440\u0435\u0437 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/h3>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c IDE, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0423 \u043e\u0431\u043e\u0438\u0445 \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 web \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445.<\/p>\n<h4>3.1. INSOL-1000: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u0430\u043b\u0438\u0430\u0441\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432<\/h4>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c http:\/\/192.168.0.132 (\u0430\u0434\u0440\u0435\u0441 \u0432\u0438\u0434\u0435\u043d \u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c OLED). \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041f\u0440\u0438\u0431\u043e\u0440 \u2192 \u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435\u00bb \u2014 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u0441\u0442\u0430\u0440\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u2014 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 web. \u0415\u0441\u043b\u0438 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435 \u043e\u0442\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u0435\u0441\u0442\u044c \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c: \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c \u0434\u0432\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 <strong>\u0434\u043e \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f<\/strong>, \u0442\u043e\u0433\u0434\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0432 bootloader.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435: <strong>\u0430\u043b\u0438\u0430\u0441\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432<\/strong>. \u0410\u043b\u0438\u0430\u0441 \u2014 \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 PARAMS \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 IB \/ QB \/ IW \/ QW \u0432 4diac. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e: \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 &#8216;ain0&#8217; \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0438\u0434\u0430 \u00abaddr:0,channel:1\u00bb, \u0438 \u044d\u0442\u0438 \u0436\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0432\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u2014 PostgreSQL, OPC UA, FUXA.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/259\/687\/da6\/259687da69efe502beffef5e8e99cc02.png\" alt=\"\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0430\u043b\u0438\u0430\u0441\u043e\u0432 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 FORTE \u0432 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 INSOL-1000\" width=\"560\" height=\"691\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/259\/687\/da6\/259687da69efe502beffef5e8e99cc02.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/259\/687\/da6\/259687da69efe502beffef5e8e99cc02.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0430\u043b\u0438\u0430\u0441\u043e\u0432 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 FORTE \u0432 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 INSOL-1000<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 1000 \u00ab\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 FORTE\u00bb. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443 \u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u043d \u0438\u0437 4diac.<\/em><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0410\u043b\u0438\u0430\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u043b\u043e\u043a 4diac<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u0437\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">di0 \u2026 di7 (din0\u2026din7 \u0432 \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435)<\/p>\n<\/td>\n<td>\n<p align=\"left\">IB (input bit)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">do0 \u2026 do3 (dout0\u2026dout3 \u0432 \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435)<\/p>\n<\/td>\n<td>\n<p align=\"left\">QB (output bit)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ain0 \u2026 ain2<\/p>\n<\/td>\n<td>\n<p align=\"left\">IW (input word)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b 4\u201320 \u043c\u0410<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">aout0<\/p>\n<\/td>\n<td>\n<p align=\"left\">QW (output word)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 4\u201320 \u043c\u0410<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410\u043b\u0438\u0430\u0441\u044b \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 PARAMS \u0431\u043b\u043e\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442 \u2014 &#8216;AIN0&#8217; \u0438 &#8216;ain0&#8217; \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b, \u0438 runtime \u043c\u043e\u043b\u0447\u0430 \u043f\u043e\u0434\u0441\u0443\u043d\u0435\u0442 \u00ab\u043d\u0435 \u0442\u043e\u0442\u00bb. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f (di0\/din0, do0\/dout0) \u2014 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<h4>3.2. INSOL Node: \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430 FORTE<\/h4>\n<p>\u0422\u043e\u0436\u0435 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0418\u0434\u0451\u043c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b Forte \u2192 \u0421\u0435\u0440\u0432\u0438\u0441\u044b Forte 3, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00ab\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0437\u0430\u0434\u0430\u0451\u043c \u043f\u043e\u0440\u0442 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <strong>60001<\/strong>), \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 (\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u2014 \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u0430\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 test31). \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c Forte bootfile \u043f\u0443\u0441\u0442\u044b\u043c \u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 FORTE \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442 \u0441\u0442\u0430\u0440\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438\u0437 .fboot \u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0438\u0437 IDE.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u25b6. \u0412\u0441\u0451 \u2014 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">IP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u0442 MGR<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INSOL Node<\/p>\n<\/td>\n<td>\n<p align=\"left\">192.168.0.176<\/p>\n<\/td>\n<td>\n<p align=\"left\">60001 (\u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INSOL-1000<\/p>\n<\/td>\n<td>\n<p align=\"left\">192.168.0.132<\/p>\n<\/td>\n<td>\n<p align=\"left\">61499 (\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0427\u0430\u0441\u0442\u044c 4. \u041f\u0440\u043e\u0435\u043a\u0442 \u0432 4diac IDE<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442: File \u2192 New \u2192 4DIAC Project, \u0438\u043c\u044f test33, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u2014 Finish. \u0412 System Explorer \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u0443\u0441\u0442\u044b\u043c System \u0438 Type Library.<\/p>\n<h4>4.1. \u041f\u043e\u0434\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 INSOL<\/h4>\n<p>\u0412 Type Library \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 1000, inode, userblock \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 .fbt \u0444\u0430\u0439\u043b\u044b. \u0412 \u0441\u0431\u043e\u0440\u043a\u0435 IDE \u043e\u0442 Insol \u043e\u043d\u0438 \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 4diac \u0441 eclipse.dev, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 insolsoft.ru \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a7\/2c6\/d4d\/4a72c6d4d0d80fc8bd38eea509e10fe1.png\" alt=\"System Explorer \u0441 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0431\u043b\u043e\u043a\u043e\u0432\" width=\"538\" height=\"820\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4a7\/2c6\/d4d\/4a72c6d4d0d80fc8bd38eea509e10fe1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a7\/2c6\/d4d\/4a72c6d4d0d80fc8bd38eea509e10fe1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>System Explorer \u0441 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0431\u043b\u043e\u043a\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p><em>Type Library \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <\/em>test33<em>: \u043f\u0430\u043f\u043a\u0430 <\/em>1000<em> \u2014 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (<\/em>I1000_4_20MA_IN\/OUT<em>, <\/em>I1000_DISPLAY<em>, <\/em>I1000_PID<em>, <\/em>INSOL_IO<em>), \u043f\u0430\u043f\u043a\u0430 <\/em>inode<em> \u2014 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u0448\u043b\u044e\u0437\u0430 (<\/em>SQL_GET_VAL<em>, <\/em>SQL_SET_*<em>), <\/em>userblock<em> \u2014 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u0412\u043d\u0438\u0437\u0443 \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 4diac 3.1.0.<\/em><\/p>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u043c\u043e:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 1000\/: INSOL_IO, I1000_4_20MA_IN, I1000_4_20MA_OUT, I1000_DISPLAY, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e I1000_PID<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 inode\/: SQL_SET_BOOL, SQL_SET_INT, SQL_SET_REAL, SQL_SET_LONG, SQL_SET_STRING, SQL_GET_VAL<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 userblock\/ \u2014 \u043f\u043e\u043a\u0430 \u043f\u0443\u0441\u0442\u043e, \u0441\u044e\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0441\u0432\u043e\u0439 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<h4>4.2. System Configuration \u2014 \u0433\u0434\u0435 \u043a\u0430\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/h4>\n<p>\u0414\u0432\u0430\u0436\u0434\u044b \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043d\u0430 System. \u041f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u2192 New Device \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0417\u0430\u0434\u0430\u0451\u043c \u0438\u043c\u0435\u043d\u0430 \u0438 MGR_ID:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0418\u043c\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">MGR_ID<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">node<\/p>\n<\/td>\n<td>\n<p align=\"left\">INSOL Node<\/p>\n<\/td>\n<td>\n<p align=\"left\">192.168.0.176:60001<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PLC132<\/p>\n<\/td>\n<td>\n<p align=\"left\">INSOL-1000<\/p>\n<\/td>\n<td>\n<p align=\"left\">192.168.0.132:61499<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 IDE \u0437\u043d\u0430\u0435\u0442, \u043a\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0442\u0443\u0434\u0430 \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c.<\/p>\n<h4>4.3. Application \u0434\u043b\u044f INSOL-1000<\/h4>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c Application \u0441 \u0438\u043c\u0435\u043d\u0435\u043c PLC132 \u2014 \u044d\u0442\u043e \u0441\u0435\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0435\u0434\u0435\u0442 \u043d\u0430 \u043f\u043e\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440(Insol-1000). \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0445\u0435\u043c\u044b:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>INSOL_IO<\/strong> \u2014 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e <strong>\u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a<\/strong>. \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0448\u0438\u043d\u0443 I-BUS. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 QI = 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e). \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 I\/O-\u0431\u043b\u043e\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f CNF \u043e\u0442 INSOL_IO.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>E_CYCLE (DT = T#50ms) \u2192 IB (PARAMS = &#8216;di0&#8217; \u2026 &#8216;di3&#8217;)<\/strong> \u2014 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0440\u043e\u0441 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0432\u0445\u043e\u0434\u043e\u0432 \u0441 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u043c 50 \u043c\u0441. \u041a\u0430\u0436\u0434\u044b\u0439 IB \u043e\u0442\u0434\u0430\u0451\u0442 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 OUT \u0431\u0443\u043b\u0435\u0432\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>IW (&#8216;ain0&#8217; \u2026 &#8216;ain2&#8217;) \u2192 I1000_4_20MA_IN \u2192 F_REAL_AS_WSTRING \u2192 I1000_DISPLAY<\/strong> \u2014 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b 4\u201320 \u043c\u0410, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 REAL (\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435), \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 OLED.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>QB (&#8216;do0&#8217; \u2026 &#8216;do3&#8217;)<\/strong> \u2014 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044b.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>I1000_4_20MA_OUT \u2192 QW (&#8216;aout0&#8217;)<\/strong> \u2014 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 4\u201320 \u043c\u0410. \u0423\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441\u0432\u0435\u0440\u0445\u0443 \u043e\u0442 INSOL Node.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>PUBLISH_3 (ID = &#171;239.0.0.1:13201&#187;)<\/strong> \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ain0..ain2 \u0432 multicast.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/543\/030\/3c9\/5430303c9b844adbb15594e575cec250.png\" alt=\"\u041f\u043e\u043b\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 Application PLC132\" width=\"560\" height=\"257\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/543\/030\/3c9\/5430303c9b844adbb15594e575cec250.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/543\/030\/3c9\/5430303c9b844adbb15594e575cec250.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u043e\u043b\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 Application PLC132<\/figcaption><\/div>\n<\/figure>\n<p><em>Application <\/em>PLC132<em>: <\/em>INSOL_IO<em> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 I-BUS, <\/em>E_CYCLE<em> \u043a\u0440\u0443\u0442\u0438\u0442 \u043e\u043f\u0440\u043e\u0441, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0438\u0434\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 OLED, \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044b \u2014 \u043d\u0430 \u043f\u043e\u043b\u0435\u0432\u044b\u0435 \u0440\u0435\u043b\u0435. <\/em>SUBSCRIBE_1<em> \u043b\u043e\u0432\u0438\u0442 \u0443\u0441\u0442\u0430\u0432\u043a\u0443 <\/em>aout0<em> \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/em><\/p>\n<p>\u0410\u0434\u0440\u0435\u0441 239.0.0.x \u2014 \u044d\u0442\u043e IANA-\u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e-\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e multicast, \u0440\u0443\u0442\u0435\u0440 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0442\u0430\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442. \u041f\u043e\u0440\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u2014 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 13201 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0430, 13202 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430.<\/p>\n<h4>4.4. Applications \u0434\u043b\u044f INSOL Node<\/h4>\n<p>\u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 Node \u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0432\u0430 Application \u2014 \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443:<\/p>\n<p><strong>Node1<\/strong> \u2014 \u043f\u0440\u0438\u0451\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u0432\u043a\u0438:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>SUBSCRIBE_3 (ID = &#171;239.0.0.1:13201&#187;)<\/strong> \u043b\u043e\u0432\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b PLC132. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 IND \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f RD_1..RD_3.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>SQL_SET_REAL<\/strong> (\u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 NAME = &#8216;ain0&#8217;, &#8216;ain1&#8217;, &#8216;ain2&#8217;) \u043f\u0438\u0448\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 PostgreSQL. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0432 \u0411\u0414 \u0435\u0449\u0451 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c HIST = TRUE, \u0431\u043b\u043e\u043a \u043d\u0430\u0447\u043d\u0451\u0442 \u0435\u0449\u0451 \u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0432 tag_archive.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/strong>: E_CYCLE (T#1s) \u2192 SQL_GET_VAL (NAME = &#8216;aout0&#8217;) \u2192 F_STRING_AS_REAL \u2192 PUBLISH_1 (ID = &#171;239.0.0.1:13202&#187;). \u0420\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0447\u0438\u0442\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u0432\u043a\u0443 \u0438\u0437 \u0411\u0414 (\u0442\u0443\u0434\u0430 \u0435\u0451 \u043f\u043e\u043b\u043e\u0436\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0447\u0435\u0440\u0435\u0437 FUXA), \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 REAL \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0432 \u0441\u0435\u0442\u044c. PLC132 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044d\u0442\u043e\u0442 \u0436\u0435 multicast \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442 \u0435\u0451 \u043a aout0.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/239\/f9b\/372\/239f9b372aecce6306ca994cd91fe1f5.png\" alt=\"Application Node1\" width=\"560\" height=\"427\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/239\/f9b\/372\/239f9b372aecce6306ca994cd91fe1f5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/239\/f9b\/372\/239f9b372aecce6306ca994cd91fe1f5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Application Node1<\/figcaption><\/div>\n<\/figure>\n<p>Node1<em>: \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0432\u0435\u0442\u043a\u0430 \u2014 <\/em>SUBSCRIBE_3<em> \u043b\u043e\u0432\u0438\u0442 <\/em>ain0..ain2<em> \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0432 PostgreSQL \u0447\u0435\u0440\u0435\u0437 <\/em>SQL_SET_REAL<em>. \u041d\u0438\u0436\u043d\u044f\u044f \u0432\u0435\u0442\u043a\u0430 \u2014 <\/em>E_CYCLE<em> \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0447\u0438\u0442\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u0432\u043a\u0443 <\/em>aout0<em> \u0438\u0437 \u0411\u0414 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0435\u0451 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u0435\u0442\u044c.<\/em><\/p>\n<p><strong>Node2<\/strong> \u2014 \u043f\u0440\u0438\u0451\u043c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432: SUBSCRIBE_4 (ID = &#171;231.0.0.1:60002&#187;) \u2192 SQL_SET_BOOL \u0434\u043b\u044f di0..di3. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 multicast-\u043a\u0430\u043d\u0430\u043b \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043a\u0438.<\/p>\n<h4>4.5. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u0438 \u0434\u0435\u043f\u043b\u043e\u0439<\/h4>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 System Configuration. \u041f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c(\u043c\u0430\u043f\u043f\u0438\u043c) PLC132 Application \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e PLC132, Node1 \u0438 Node2 \u2014 \u043d\u0430 node. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0446\u0432\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c <strong>\u043c\u0430\u043f\u043f\u0438\u043d\u0433<\/strong>.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 Online \u2192 Connect to System. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0436\u0438\u0432\u044b \u0438 \u043f\u043e\u0440\u0442\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0443 \u043e\u0431\u043e\u0438\u0445 \u0433\u043e\u0440\u044f\u0442 \u0437\u0435\u043b\u0451\u043d\u044b\u043c. \u0416\u043c\u0451\u043c Deploy \u2192 Start (\u25b6). \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043b\u0435\u0442\u0430\u0435\u0442 \u0432 RAM \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 IDE \u0432 Online-\u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong>\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0441\u0432\u044f\u0437\u0438<\/strong> \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u044d\u0442\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u0430\u044f \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \u0432 4diac: \u0432\u044b \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u043b\u043e \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0433\u0434\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043b\u0435\u0436\u0430\u0442.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432 RAM \u2014 \u043f\u043e\u0441\u043b\u0435 reboot \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0435\u0451 \u0442\u0430\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u2014 \u0447\u0435\u0440\u0435\u0437 Boot-\u0444\u0430\u0439\u043b, \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u0438\u0436\u0435.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 5. \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a: ST-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 C++<\/h3>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438. \u0422\u0438\u043f\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e: Basic FB (\u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043d\u0430 ST \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u043c \u2014 ECC), Composite FB (\u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 FB), Service Interface FB (\u0434\u043b\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 runtime \u2014 \u043e\u0431\u044b\u0447\u043d\u043e C++), Simple FB. \u0421\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 Basic FB.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u0431\u043b\u043e\u043a NewBlock, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0440\u0438 REAL \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u0441\u0443\u043c\u043c\u0443, \u0441\u0440\u0435\u0434\u043d\u0435\u0435, \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c.<\/p>\n<h4>5.1. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u043b\u043e\u043a\u0430<\/h4>\n<p>\u041f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 Type Library\/userblock \u2192 New \u2192 Basic Function Block. \u0418\u043c\u044f \u2014 NewBlock. \u0412\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Interface:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435: REQ, \u0441 \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 ri1, ri2, ri3 (\u0442\u0438\u043f REAL).<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435: CNF, \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 rmin, rsumm, rmax, rmidl (\u0442\u0438\u043f REAL).<\/p>\n<h4>5.2. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 ST<\/h4>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c MATH2 (\u0432\u043a\u043b\u0430\u0434\u043a\u0430 Algorithms). \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e FORTE:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b23\/a90\/d39\/b23a90d3934e2218413c3ff363e80a08.png\" alt=\"\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c MATH2 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 4diac IDE\" width=\"560\" height=\"873\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b23\/a90\/d39\/b23a90d3934e2218413c3ff363e80a08.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b23\/a90\/d39\/b23a90d3934e2218413c3ff363e80a08.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c MATH2 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 4diac IDE<\/figcaption><\/div>\n<\/figure>\n<p><em>ST-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 4diac IDE \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c <\/em>MATH2<em>. \u0412\u0441\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u044f\u0432\u043d\u043e (<\/em>INT#0<em>, <\/em>REAL#3.0<em>) \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0432\u0435\u043d\u0446\u0438\u044f IEC 61131-3, FORTE \u043d\u0430 \u043d\u0435\u0439 \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442.<\/em><\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0437\u0434\u0435\u0441\u044c \u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 IEC 61131-3 \u0440\u0435\u0432. 2. \u041f\u043e\u043b\u043d\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u2014 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 PLCopen, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f runtime FORTE \u2014 \u0432 eclipse.dev\/4diac\/doc.<\/p>\n<h4>5.3. ECC \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0431\u043b\u043e\u043a\u0430<\/h4>\n<p>\u0412\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 ECC \u0440\u0438\u0441\u0443\u0435\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0441 \u0434\u0432\u0443\u043c\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 START (\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435) \u2014 \u043f\u0443\u0441\u0442\u043e\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 State \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 MATH2 \u0438 \u044d\u043c\u0438\u0442\u0438\u0442 CNF.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u044b:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 START \u2192 State \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044e REQ.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 State \u2192 START \u043f\u043e \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e 1 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0433\u043e\u0442\u043e\u0432\u044b \u043b\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 REQ.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/82e\/7dd\/9cb\/82e7dd9cbd6a4fa1f6fc515935ea17e3.png\" width=\"473\" height=\"213\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/82e\/7dd\/9cb\/82e7dd9cbd6a4fa1f6fc515935ea17e3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/82e\/7dd\/9cb\/82e7dd9cbd6a4fa1f6fc515935ea17e3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0420\u0438\u0441. \u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 ECC<\/p>\n<p>\u00a0<\/p>\n<h4>5.4. \u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e<\/h4>\n<p>\u0421\u0430\u043c\u043e\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0432 4diac IDE \u2014 \u044d\u0442\u043e <strong>\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0430 FB<\/strong> \u0431\u0435\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u0440\u0430\u0432\u044b\u0439 \u043a\u043b\u0438\u043a \u043f\u043e \u0442\u0438\u043f\u0443 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u2192 Debug As \u2192 1 Debug FB Type \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 runtime \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0431\u043b\u043e\u043a \u043a \u043d\u0435\u043c\u0443.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ae\/420\/1ac\/6ae4201ac06654f5ba9acefd4dd3ed89.png\" alt=\"\u0420\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 4diac IDE: ST-\u043a\u043e\u0434, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438\" width=\"560\" height=\"388\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6ae\/420\/1ac\/6ae4201ac06654f5ba9acefd4dd3ed89.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ae\/420\/1ac\/6ae4201ac06654f5ba9acefd4dd3ed89.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 4diac IDE: ST-\u043a\u043e\u0434, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0422\u043e\u0442 \u0436\u0435 <\/em>MATH2<em> \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438: \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043d\u0430 <\/em>END_ALGORITHM<em>, \u0432 <\/em>Variables<em> \u0441\u043f\u0440\u0430\u0432\u0430 \u0432\u0438\u0434\u043d\u044b \u0436\u0438\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <\/em>ardata = [11.0, 23.4, 32.1]<em>, <\/em>maximum = 32.1<em>, <\/em>middle = 22.166666<em>. \u0421\u043b\u0435\u0432\u0430 \u0432\u043d\u0438\u0437\u0443 \u2014 <\/em>FB Debug<em> \u0441 \u043f\u0430\u043d\u0435\u043b\u044c\u044e \u0432\u0445\u043e\u0434\u043e\u0432 \u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u0431\u043b\u043e\u043a\u0430: <\/em>ri1 = 0.0, ri2 = 11.0, ri3 = 23.4 \u2192 rmin = 11.0, rsumm = 66.5, rmax = 32.1, rmidl = 22.166666<em>.<\/em><\/p>\n<p>\u0427\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Watch Variables<\/strong> \u2014 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430. \u041b\u044e\u0431\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Force Event<\/strong> \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c REQ \u0440\u0443\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0431\u043b\u043e\u043a \u0432\u044b\u0434\u0430\u0441\u0442 \u043d\u0430 CNF. \u0411\u0435\u0437 \u0432\u0441\u044f\u043a\u043e\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u0422\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043d\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445 ECC<\/strong> \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435, \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Debug Stack<\/strong> \u2014 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f ECC<\/strong> \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u00ab\u0433\u043b\u0430\u0437\u0430-\u0441\u043c\u043e\u0442\u0440\u044f\u0442-\u043a\u0430\u043a-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430-\u0431\u0435\u0436\u0438\u0442\u00bb, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0432 IEC 61499 \u0438 \u043f\u0440\u0438\u0448\u043b\u0438.<\/p>\n<h4>5.5. \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0432 C++ \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u043e\u0434 Linux<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0448 \u0431\u043b\u043e\u043a \u043f\u043e\u0435\u0445\u0430\u043b \u043d\u0430 INSOL Node, \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e C++ \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u043f\u043e\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u0441\u0431\u043e\u0440\u043a\u0443 FORTE \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.<\/p>\n<p>\u0412 IDE \u2014 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 NewBlock \u2192 Export, \u0432 \u0432\u0438\u0437\u0430\u0440\u0434\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c 4diac IDE \u2192 4diac IDE Type Export, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440 4diac FORTE 3.x, \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u2014 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u0431\u043e\u0440\u043a\u0438. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430: NewBlock.cpp \u0438 NewBlock.h.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 INSOL Node \u2192 Forte \u2192 \u0421\u0431\u043e\u0440\u043a\u0438 Forte3 \u2192 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u2192 \u0421\u0431\u043e\u0440\u043a\u0430. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0447\u0435\u043a\u0431\u043e\u043a\u0441 \u0440\u044f\u0434\u043e\u043c \u0441 NewBlock \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u00ab\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0424\u0411 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438\u00bb, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c, \u0436\u043c\u0451\u043c \u00ab\u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb. \u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 \u00ab\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u00bb \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0431\u043b\u043e\u043a \u0441\u043e\u0431\u0440\u0430\u043d \u0432 \u043d\u043e\u0432\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a FORTE \u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0442\u0438\u043f\u043e\u0432. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u25b6 \u2014 \u0438 NewBlock \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 IDE \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438. \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u0445\u0435\u043c\u0443.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 6. \u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c: PostgreSQL \u2192 OPC UA \u2192 FUXA<\/h3>\n<p>\u042d\u0442\u043e \u0442\u0430 \u0447\u0430\u0441\u0442\u044c, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 INSOL Node, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0412 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0410\u0421\u0423 \u0422\u041f \u00ab\u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c\u00bb \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u0440\u0430\u0437\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0439 \u043e\u0431\u0432\u044f\u0437\u043a\u043e\u0439: \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0430\u044f SCADA ( WinCC, MasterSCADA\u00a0 \u0438 \u043f\u0440.), \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 OPC-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u0440\u043e\u0434\u0435 KEPServerEX, historian, \u0421\u0423\u0411\u0414, \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a HMI, \u043f\u043b\u044e\u0441 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432, \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043e\u0442\u0447\u0451\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u2014 \u0441\u0432\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440, \u0441\u0432\u043e\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f, \u0441\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0441\u0432\u043e\u0439 \u043a\u0430\u043d\u0430\u043b \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u044d\u0442\u0438 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c.<\/p>\n<p><strong>INSOL Node \u2014 \u044d\u0442\u043e \u0432\u0441\u0451 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043e\u0431\u043a\u0435, \u043f\u043e\u0434 \u043e\u0434\u043d\u043e\u0439 web-\u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e.<\/strong> \u041d\u0430 Linux-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>4diac FORTE runtime<\/strong> \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0440\u0435\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f IEC 61499. \u0422\u043e, \u0440\u0430\u0434\u0438 \u0447\u0435\u0433\u043e \u043c\u044b \u0438 \u043f\u0440\u0438\u0448\u043b\u0438.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>PostgreSQL<\/strong> \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0421\u0423\u0411\u0414. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 SQL_SET_*; \u043d\u0438\u0447\u0435\u0433\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0410\u0440\u0445\u0438\u0432\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u2014 \u0432\u0441\u0451 \u0437\u0434\u0435\u0441\u044c.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>OPC UA \u0441\u0435\u0440\u0432\u0435\u0440<\/strong> (open62541) \u2014 \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u043a\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 PostgreSQL. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 Historical Access \u2014 \u0432\u043d\u0435\u0448\u043d\u044f\u044f SCADA \u0438\u043b\u0438 MES \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044e.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>FUXA SCADA<\/strong> \u2014 open-source \u0432\u0435\u0431-SCADA\/HMI. \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e Windows-\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0414\u043e\u0441\u0442\u0443\u043f \u0441 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430, \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430, \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0432 \u0441\u0435\u0442\u0438.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Modbus TCP-\u043a\u043b\u0438\u0435\u043d\u0442<\/strong> (libmodbus) \u2014 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043b\u0435\u0432\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439: \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0430\u043c\u0438, \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u044d\u043d\u0435\u0440\u0433\u0438\u0438, \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0447\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u043e\u0439.<\/p>\n<p>\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Web Server Insol-Node<\/strong> \u2014 \u0435\u0434\u0438\u043d\u0430\u044f web-\u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443: \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0441\u0435\u0440\u0432\u0438\u0441\u044b FORTE \u0438 \u0438\u0445 \u0441\u0431\u043e\u0440\u043a\u0438, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 OPC UA, \u0434\u043e\u0441\u0442\u0443\u043f \u043a SCADA, \u043e\u0442\u0447\u0451\u0442\u044b, \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0441\u0435\u0442\u0438, \u043e\u0431\u0437\u043e\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u2014 open-source \u0441\u0442\u0435\u043a \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e: PostgreSQL, open62541, FUXA, 4diac FORTE. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u00ab$N \u0437\u0430 \u0442\u0435\u0433\u00bb, \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u043a\u0430. \u041e\u0434\u0438\u043d \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u0442\u0451\u0436 \u0437\u0430 \u0436\u0435\u043b\u0435\u0437\u043e \u2014 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0441\u043e\u0431\u0440\u0430\u043d.<\/p>\n<p>\u0427\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430: <strong>\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0443\u0436\u0435 \u0441\u0448\u0438\u0442\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043f\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0448\u0438\u043d\u0430\u043c, \u0430 \u043d\u0435 \u043f\u043e \u0431\u0443\u043c\u0430\u0436\u043d\u044b\u043c \u0441\u0445\u0435\u043c\u0430\u043c<\/strong>. \u0411\u043b\u043e\u043a SQL_SET_REAL \u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2192 PostgreSQL \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043e\u0442\u0434\u0430\u043b \u0435\u0433\u043e \u0432 OPC UA \u2192 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 SCADA \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u2192 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u0442\u0440\u0435\u043d\u0434\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c. \u0412\u0441\u0435 \u0442\u0440\u0438 \u0448\u0430\u0433\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0431\u0435\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0438 \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0410\u0421\u0423 \u0422\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 Windows, SCADA-\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, KEPServerEX, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0421\u0423\u0411\u0414 \u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u2014 \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043f\u0430\u0440\u0443 \u0447\u0430\u0441\u043e\u0432 \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 DIN-\u0440\u0435\u0435\u0447\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0430\u0451\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.<\/p>\n<p>\u00a0<\/p>\n<h4>6.1. PostgreSQL<\/h4>\n<p>\u0412 Node \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d PostgreSQL \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u0431\u0432\u044f\u0437\u043a\u0430 \u043d\u0430\u0434 \u043d\u0438\u043c. \u0411\u043b\u043e\u043a\u0438 SQL_SET_* \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e <strong>\u043e\u043d\u0438 \u0441\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e<\/strong> \u0432 \u0411\u0414 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u2014 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043b\u0435\u0437\u0442\u044c \u0432 psql \u0438 \u0434\u0435\u043b\u0430\u0442\u044c CREATE TABLE.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/89b\/442\/0d5\/89b4420d546c033b70b786a5560dd018.png\" alt=\"\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 Insol NET \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 PostgreSQL \u0441 \u0436\u0438\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"560\" height=\"313\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/89b\/442\/0d5\/89b4420d546c033b70b786a5560dd018.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/89b\/442\/0d5\/89b4420d546c033b70b786a5560dd018.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 Insol NET \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 PostgreSQL \u0441 \u0436\u0438\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0420\u0430\u0437\u0434\u0435\u043b \u00ab\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438\u00bb \u0432 Insol NET: <\/em>ain0..ain2<em> (Float, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043b\u043e\u043a\u043e\u043c <\/em>SQL_SET_REAL<em>), <\/em>aout0<em> (Float, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u0432\u043a\u0430), <\/em>di0..di3<em> (Bool, \u0442\u043e\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438). \u041a\u043e\u043b\u043e\u043d\u043a\u0430 \u00ab\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e\u00bb \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043c\u043f \u043f\u0440\u0438\u0445\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/em><\/p>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0411\u043b\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0438\u043f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0441 HIST=TRUE<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_SET_BOOL<\/p>\n<\/td>\n<td>\n<p align=\"left\">BOOL<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_SET_INT<\/p>\n<\/td>\n<td>\n<p align=\"left\">INT (16 \u0431\u0438\u0442)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0432 \u0446\u0435\u043b\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_SET_REAL<\/p>\n<\/td>\n<td>\n<p align=\"left\">REAL<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0432 \u0442\u0440\u0435\u043d\u0434\u043e\u0432 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_SET_LONG<\/p>\n<\/td>\n<td>\n<p align=\"left\">DWORD (32 \u0431\u0438\u0442\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0432 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_SET_STRING<\/p>\n<\/td>\n<td>\n<p align=\"left\">STRING<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SQL_GET_VAL<\/p>\n<\/td>\n<td>\n<p align=\"left\">ANY \u2192 STRING<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0411\u0414 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0443\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 (\u0442\u043e, \u0447\u0442\u043e <strong>\u043d\u0435<\/strong> \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 4diac, \u0430 \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 SCADA) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0411\u0414 \u0440\u0443\u043a\u0430\u043c\u0438 \u2014 \u0447\u0435\u0440\u0435\u0437 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 INSOL Node, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u0442 \u0432 \u0442\u0443 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u0410 \u043f\u043e\u0442\u043e\u043c 4diac \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0445 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0447\u0435\u0440\u0435\u0437 SQL_GET_VAL.<\/p>\n<h4>6.2. OPC UA \u2014 \u0431\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/h4>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u043b\u0435\u0436\u0438\u0442 \u0432 PostgreSQL, <strong>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/strong> \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c OPC UA \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c (open62541) \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u0442\u0443 4840. \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0432 web, \u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u043e\u0432: Security Mode: None, endpoint opc.tcp:\/\/192.168.0.176:4840.<\/p>\n<p>\u0410\u0440\u0445\u0438\u0432\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 HIST=TRUE \u043e\u0442\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <strong>OPC UA Historical Access<\/strong> \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e SCADA \u0441\u043c\u043e\u0436\u0435\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u043d\u0434\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u00ab\u0436\u0438\u0432\u044b\u043c\u00bb \u0434\u0430\u043d\u043d\u044b\u043c, \u043d\u043e \u0438 \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438.<\/p>\n<h4>6.3. FUXA \u2014 \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/h4>\n<p>FUXA \u2014 \u044d\u0442\u043e open-source \u0432\u0435\u0431-SCADA\/HMI \u043d\u0430 Angular (\u0435\u0441\u0442\u044c \u043d\u0430 GitHub: frangoteam\/FUXA). \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 OPC UA, Modbus TCP\/RTU, MQTT, \u043f\u0440\u044f\u043c\u043e\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043a PostgreSQL\/SQLite\/InfluxDB. \u041d\u0430 INSOL Node \u043e\u043d\u0430 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u2014 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c http:\/\/192.168.0.176:1881.<\/p>\n<p>\u0428\u0430\u0433\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<p><strong>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 OPC UA.<\/strong> \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 Editor \u2192 \u0448\u0435\u0441\u0442\u0435\u0440\u0451\u043d\u043a\u0430 \u2192 Connections \u2192 + \u2192 OPC UA:<\/p>\n<p>Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 opcnode<br \/> Endpoint URL: opc.tcp:\/\/192.168.0.176:4840<br \/> Security:\u00a0\u00a0\u00a0\u00a0 None<\/p>\n<p>Connect \u2192 \u0441\u0442\u0430\u0442\u0443\u0441 Connected \u2192 Save.<\/p>\n<p><strong>\u0422\u0435\u0433\u0438.<\/strong> \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Tags \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e \u0442\u0435\u0433\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0443\u0437\u043b\u044b \u0438\u0437 \u0434\u0435\u0440\u0435\u0432\u0430 OPC UA.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/100\/595\/75b\/10059575bf2b977052f923b93b05f01d.png\" alt=\"\u0414\u0435\u0440\u0435\u0432\u043e OPC UA \u0432 FUXA: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 INSOL Node, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0435\" width=\"560\" height=\"204\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/100\/595\/75b\/10059575bf2b977052f923b93b05f01d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/100\/595\/75b\/10059575bf2b977052f923b93b05f01d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u0440\u0435\u0432\u043e OPC UA \u0432 FUXA: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 INSOL Node, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0435<\/figcaption><\/div>\n<\/figure>\n<p>Browse Tags in Server<em> \u0432 FUXA: \u043f\u043e\u0434 <\/em>Objects \u2192 opcserver<em> \u0432\u0438\u0434\u043d\u044b <\/em>ain0..ain2<em> (Float, R, R) \u0438 <\/em>aout0<em> (Float, R\/W, R\/W). \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0438\u0437 OPC UA \u2014 FUXA \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u0430 \u043a\u0430\u043a\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0442\u0430\u0442\u044c.<\/em><\/p>\n<p>\u0418\u043c\u044f \u0442\u0435\u0433\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u043b\u0438\u0430\u0441\u043e\u043c \u043a\u0430\u043d\u0430\u043b\u0430 \u043d\u0430 INSOL-1000 \u2014 \u0442\u0430\u043a \u043f\u0440\u043e\u0449\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0422\u0435\u0433 FUXA<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0437\u0435\u043b OPC UA<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0438\u043f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ain0, ain1, ain2<\/p>\n<\/td>\n<td>\n<p align=\"left\">Objects \u2192 opcserver \u2192 ain0..2<\/p>\n<\/td>\n<td>\n<p align=\"left\">Float<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">aout0<\/p>\n<\/td>\n<td>\n<p align=\"left\">Objects \u2192 opcserver \u2192 aout0<\/p>\n<\/td>\n<td>\n<p align=\"left\">Float (R\/W)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">di0..di3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Objects \u2192 opcserver \u2192 di0..3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Boolean<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">do0..do3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Objects \u2192 opcserver \u2192 do0..3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Boolean (R\/W)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u041c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u0430.<\/strong> \u0412 Pages \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 MainView. \u0418\u0437 \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u0442\u044f\u043d\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>Gauge \u0434\u043b\u044f ain0 \u2014 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d 4..20 (\u0435\u0441\u043b\u0438 \u0432 \u00ab\u0441\u044b\u0440\u044b\u0445\u00bb \u043c\u0438\u043b\u043b\u0438\u0430\u043c\u043f\u0435\u0440\u0430\u0445) \u0438\u043b\u0438 0..100 (\u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445, \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 4diac). \u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0437\u043e\u043d\u044b \u0437\u0435\u043b\u0451\u043d\u0430\u044f\/\u0436\u0451\u043b\u0442\u0430\u044f\/\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u2014 \u043d\u043e\u0440\u043c\u0430\/\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\/\u0430\u0432\u0430\u0440\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>Switch \u0434\u043b\u044f do0. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0435\u0433 R\/W, \u043f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 FUXA \u043f\u0438\u0448\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 OPC UA. \u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 PostgreSQL, \u043e\u0442\u0442\u0443\u0434\u0430 SQL_GET_VAL \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0433\u043e \u043d\u0430 INSOL-1000 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0445\u043e\u0434. \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u2014 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u00ab\u043d\u0430\u0436\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0443 \u2014 \u043b\u0430\u043c\u043f\u0430 \u0437\u0430\u0433\u043e\u0440\u0435\u043b\u0430\u0441\u044c\u00bb, \u043d\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0434\u043b\u0438\u043d\u043d\u0430\u044f: \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u2192 OPC UA \u2192 \u0411\u0414 \u2192 FORTE \u043d\u0430 Node \u2192 publish \u2192 subscribe \u2192 FORTE \u043d\u0430 PLC132 \u2192 QB \u2192 \u0440\u0435\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>Chart \u0434\u043b\u044f \u0442\u0440\u0435\u043d\u0434\u043e\u0432. \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2014 \u043b\u0438\u0431\u043e OPC UA Historical Access (\u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0430 \u0441 HIST=TRUE), \u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 DAQ \u0432 FUXA (\u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u0433\u043e\u0432 \u0432 SQLite \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0440\u0435\u043d\u0434\u044b \u0438\u0437 \u043d\u0435\u0433\u043e). \u0412\u0442\u043e\u0440\u043e\u0435 \u0443\u0434\u043e\u0431\u043d\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u0435\u043d \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 4diac.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/09b\/79c\/e13\/09b79ce139d4dc5bad43ed7a1d161a57.png\" alt=\"\u0413\u043e\u0442\u043e\u0432\u0430\u044f \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u0430 \u0432 FUXA: \u0442\u0440\u0438 gauge \u0441 \u0436\u0438\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 + \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 aout0\" width=\"560\" height=\"257\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/09b\/79c\/e13\/09b79ce139d4dc5bad43ed7a1d161a57.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/09b\/79c\/e13\/09b79ce139d4dc5bad43ed7a1d161a57.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0413\u043e\u0442\u043e\u0432\u0430\u044f \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u0430 \u0432 FUXA: \u0442\u0440\u0438 gauge \u0441 \u0436\u0438\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 + \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 aout0<\/figcaption><\/div>\n<\/figure>\n<p><em>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0434 \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. <\/em>aout0 = 4.589 mA<em> \u2014 \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u0432\u043a\u0430, \u0437\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c; <\/em>ain0..ain2<em> \u2014 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0441 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e INSOL-1000. \u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0437\u043e\u043d\u044b 4..20 \u043c\u0410 \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043a\u0440\u0430\u0441\u043d\u044b\u0439\/\u0436\u0451\u043b\u0442\u044b\u0439\/\u0437\u0435\u043b\u0451\u043d\u044b\u0439.<\/em><\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c (Save), \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c View. \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0430, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f per-tag. \u0413\u043e\u0442\u043e\u0432\u0443\u044e \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e http:\/\/192.168.0.176:1881\/lab \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 7. Boot-\u0444\u0430\u0439\u043b \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0436\u0438\u043c \u00ab\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c\u043e\u00bb<\/h3>\n<p>\u041f\u043e\u043a\u0430 \u043c\u044b \u0432\u0441\u0451 \u0434\u0435\u043f\u043b\u043e\u0438\u043b\u0438 \u0432 RAM. \u0427\u0442\u043e\u0431\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0436\u0438\u0432\u0430\u043b\u0430 \u0441\u0430\u043c\u0430 \u043f\u043e\u0441\u043b\u0435 reboot \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0443\u0436\u0435\u043d *.fboot \u0444\u0430\u0439\u043b. XML \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438<\/p>\n<p>\u0412 IDE: \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 Application \u2192 Create Boot File. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 .fboot. \u0414\u0430\u043b\u044c\u0448\u0435:<\/p>\n<ol>\n<li>\n<p><strong>INSOL-1000<\/strong>: web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u2192 \u00ab\u0421\u0435\u0440\u0432\u0438\u0441\u044b\u00bb \u2192 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c *.fboot \u0434\u043b\u044f PLC132.<\/p>\n<\/li>\n<li>\n<p><strong>INSOL Node<\/strong>: \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 4diac FORTE \u2192 \u0432 \u043f\u043e\u043b\u0435 Forte bootfile \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 *.fboot \u0434\u043b\u044f node, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u00ab\u0410\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u00bb.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043e\u0431\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>Runtime \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 .fboot \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 IDE \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0430.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 <strong>\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u0430\u043b\u044f\u0439\u0442\u0435<\/strong> Boot-\u0444\u0430\u0439\u043b \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u0434 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u044b\u043c Deploy. \u0418\u043d\u0430\u0447\u0435 FORTE \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u0442\u0441\u044f \u0441 .fboot-\u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\u043d\u0443\u044e \u0438\u0437 IDE, \u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0434\u043e\u043b\u0433\u043e \u043b\u043e\u0432\u0438\u0442\u044c \u00ab\u0444\u0430\u043d\u0442\u043e\u043c\u043d\u044b\u0435\u00bb \u043e\u0442\u043b\u0438\u0447\u0438\u044f.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 8. \u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435<\/h3>\n<p>\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0435\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041b\u041a.<\/strong> \u041f\u043e\u043b\u0435\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 (\u043e\u043f\u0440\u043e\u0441 I\/O, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 OLED, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434) \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 STM32H \u0441 FreeRTOS. \u0410\u0440\u0445\u0438\u0432, SCADA \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u2014 \u043d\u0430 Linux-\u0448\u043b\u044e\u0437\u0435. \u0421\u0432\u044f\u0437\u044c \u2014 UDP multicast \u0432 \u043e\u0434\u043d\u043e\u043c Ethernet-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0434\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/strong> \u041e\u043f\u0438\u0441\u0430\u043d\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 4diac IDE, \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u043f\u043f\u0438\u043d\u0433. Online-\u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u043b\u0438\u043d\u0438\u044f\u0445 \u0441\u0445\u0435\u043c\u044b \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0431\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u0435\u0440\u0445.<\/strong> OPC UA \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 SCADA \u0438\u043b\u0438 MES. FUXA \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043a\u0430\u043a \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u044b\u0439 HMI, \u043d\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u0443 \u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u043d\u0443\u044e \u041c\u0430\u0441\u0442\u0435\u0440\u0421\u043a\u0430\u0434\u0443 \u0438\u043b\u0438 WinCC.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0438 \u0431\u043b\u043e\u043a\u0438.<\/strong> \u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043e\u043a. Basic FB \u2192 ST \u2192 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u2192 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 C++ \u2192 \u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u2192 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 IDE. \u0426\u0438\u043a\u043b \u00ab\u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0431\u043b\u043e\u043a \u2014 \u0432\u0441\u0442\u0440\u043e\u0438\u043b \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443\u00bb \u2014 \u043c\u0438\u043d\u0443\u0442 \u0437\u0430 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435 \u044d\u0442\u043e \u043d\u0435 \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u0430\u044f \u043f\u0443\u043b\u044f:<\/p>\n<ul>\n<li>\n<p>IEC 61499 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u0435\u043d \u2014 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u0447\u0438\u0442\u0430\u044e\u0442, \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u043f\u0435\u0446\u043e\u0432 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 61131-3.<\/p>\n<\/li>\n<li>\n<p>Multicast \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u0435\u0442\u044c: managed-\u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440\u044b \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 IGMP snooping, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u00ab\u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0445\u00bb \u0441\u0432\u0438\u0442\u0447\u0435\u0439 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0435\u0442 \u2014 \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 ACK-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u043e\u0432\u0435\u0440\u0445 PUBLISH\/SUBSCRIBE.<\/p>\n<\/li>\n<li>\n<p>Online-\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2014 \u043c\u043e\u0449\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u044b: \u00ab\u0433\u043e\u0440\u044f\u0447\u0443\u044e \u043f\u043e\u0434\u043c\u0435\u043d\u0443\u00bb \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 \u043d\u0435\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/insolsoft.ru\" rel=\"noopener noreferrer nofollow\">\u0421\u0431\u043e\u0440\u043a\u0430 4diac IDE \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 Insol \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u2192 \u0422\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u2192 \u041f\u041e 4diac<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eclipse.dev\/4diac\" rel=\"noopener noreferrer nofollow\">\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 4diac<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eclipse.dev\/4diac\/doc\/intro\/iec61499.html\" rel=\"noopener noreferrer nofollow\">\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f IEC 61499 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Eclipse<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/frangoteam\/FUXA\" rel=\"noopener noreferrer nofollow\">FUXA SCADA \u043d\u0430 \u0413\u0438\u0442\u0445\u0430\u0431\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/plcopen.org\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f ST<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1041066\/\">https:\/\/habr.com\/ru\/articles\/1041066\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0410\u0421\u0423 \u0422\u041f \u043d\u0430 4diac FORTE, PostgreSQL \u0438 FUXA SCADAINSOL-1000 \u0432 \u0441\u0431\u043e\u0440\u0435: \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 OLED \u0438 \u043f\u044f\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0435Insol-1000 \u0432 \u0441\u0431\u043e\u0440\u0435: \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 OLED \u0438 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0435.Insol-Node-10-220.\u00a0\u00a0\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0410\u0421\u0423 \u0422\u041f \u2014 \u044d\u0442\u043e \u0448\u043a\u0430\u0444 \u0441 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u0431\u0435\u043b\u0435\u0439 \u0441 \u043f\u043e\u043b\u0435\u0432\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0434\u043e\u0440\u043e\u0433\u043e, \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u0438 \u043f\u043b\u043e\u0445\u043e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0433\u0434\u0435 \u00ab\u043f\u043e\u043b\u0435\u0432\u0430\u044f\u00bb \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u0430 \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 IEC 61499 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u0438 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0432 \u0441\u0435\u0442\u0438 \u2014 \u0431\u0435\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041b\u041a.\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0421\u043e\u0431\u0435\u0440\u0451\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445: \u041f\u041b\u041a INSOL-1000 (FreeRTOS, STM32H) \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0432\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u2014 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b, \u0441\u0447\u0438\u0442\u0430\u0435\u0442 4\u201320 \u043c\u0410, \u0440\u0443\u043b\u0438\u0442 OLED-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c; \u0448\u043b\u044e\u0437 INSOL Node (Linux) \u2014 \u044d\u0442\u043e \u00ab\u0432\u0435\u0440\u0445\u00bb \u0441 PostgreSQL, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c OPC UA \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 SCADA-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 FUXA. \u041c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u2014 UDP multicast \u043f\u043e \u0441\u0445\u0435\u043c\u0435 PUBLISH\/SUBSCRIBE. \u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u0430 \u2014 4diac IDE, runtime \u043e\u0434\u0438\u043d \u2014 4diac FORTE, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u0434\u043d\u0430, \u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438.TL;DR\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4diac \u2014 open-source \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f IEC 61499 \u043e\u0442 Eclipse Foundation. IDE + \u043b\u0451\u0433\u043a\u0438\u0439 C++ runtime FORTE.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041b\u043e\u0433\u0438\u043a\u0430 \u2014 \u044d\u0442\u043e \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 (FB), \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u0438 \u0434\u0430\u043d\u043d\u044b\u043c. \u0411\u043b\u043e\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u2014 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0438\u043b\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e IEC 61131-3.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u043f\u043e\u0442\u043e\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u043f\u043f\u0438\u043d\u0433. \u0414\u0435\u043f\u043b\u043e\u0439 \u2014 \u043f\u043e \u0441\u0435\u0442\u0438, \u0432 RAM \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430; \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f *.fboot \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 runtime \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u2014 \u0447\u0435\u0440\u0435\u0437 \u0431\u043b\u043e\u043a\u0438 PUBLISH_N \/ SUBSCRIBE_N (UDP multicast). \u0411\u0435\u0437 \u0431\u0440\u043e\u043a\u0435\u0440\u0430, \u0431\u0435\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041d\u0430 INSOL Node \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 PostgreSQL (\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435), OPC UA-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0434\u043b\u044f SCADA \u0438 MES) \u0438 FUXA \u2014 \u0432\u0435\u0431-SCADA \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u043c\u043d\u0435\u043c\u043e\u0441\u0445\u0435\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f.\u0427\u0430\u0441\u0442\u044c 1. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 IEC 61499 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e IEC \u00a061131\u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e: \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IEC 61131-3 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435, \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044b, \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443, \u043f\u0438\u0448\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u044b. \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u00ab\u0440\u0430\u0437\u043d\u0435\u0441\u0442\u0438\u00bb \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u2014 \u043c\u0435\u0436\u0434\u0443 \u041f\u041b\u041a \u0441\u0442\u0430\u0432\u044f\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0448\u043b\u044e\u0437\u044b, Modbus-\u043c\u043e\u0441\u0442\u044b \u0438 \u043f\u0440\u043e\u0447\u0435\u0435 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e.IEC 61499 \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c:\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430 \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435 \u0432\u0441\u0451 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u2014 \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u2014 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0437\u0436\u0435, \u0432 System Configuration.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0421\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0434\u043b\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u0442\u043e\u043d\u043a\u0438\u0435 \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435) \u0438 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u0438\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438). \u0411\u043b\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u044b\u0439 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u0448\u0451\u043b \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2014 \u043d\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0437\u0436\u0435. \u0426\u0438\u043a\u043b \u043e\u043f\u0440\u043e\u0441\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u043e \u2014 \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u043b\u043e\u043a\u043e\u043c E_CYCLE \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u043c.\u00a0\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0427\u0435\u0440\u0435\u0437 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u0441\u0435\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432 \u00ab\u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f\u00bb \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432 \u0443\u0435\u0437\u0436\u0430\u0435\u0442 \u043d\u0430 INSOL-1000, \u0447\u0430\u0441\u0442\u044c \u2014 \u043d\u0430 INSOL Node. \u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041f\u0440\u044f\u043c\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438. PUBLISH\/SUBSCRIBE \u2014 \u044d\u0442\u043e UDP multicast: \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043b\u044c\u0451\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0438 \u043b\u043e\u0432\u044f\u0442. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u043e\u043a\u0435\u0440\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a\u0430.\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u2014 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f IEC 61499Application Model \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0435\u0442\u044c FB. System Model \u2014 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u0435\u0442\u044c. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u043a\u043b\u0430\u0434\u0451\u0442 FB \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\u0413\u0434\u0435 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e: \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2014 \u043d\u0435\u0444\u0442\u0435\u0433\u0430\u0437\u043e\u0432\u0430\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f, \u0416\u041a\u0425, \u043f\u0440\u043e\u0442\u044f\u0436\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u0440\u043e\u0434\u0435 \u0432\u043e\u0434\u043e\u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u0441 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u043d\u043e\u0439 \u043f\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u043e\u0439. \u0412\u0441\u0451, \u0433\u0434\u0435 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0448\u043a\u0430\u0444 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u043a\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0430\u0441\u0441\u044b, \u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0440\u0435\u0448\u0430\u0435\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430.\u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: UDP \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0414\u043b\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0443\u0436\u043d\u0430 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0441 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u2014 SUBSCRIBE \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u00ab\u044d\u0445\u043e\u00bb, PUBLISH \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442, \u0435\u0441\u043b\u0438 \u044d\u0445\u043e \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0437\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442. \u042d\u0442\u043e \u0432\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0430\u043c\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u0414\u043b\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438\/\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e multicast \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.\u0427\u0430\u0441\u0442\u044c 2. \u0427\u0442\u043e \u0432 \u043d\u0430\u0431\u043e\u0440\u0435\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430:\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0420\u043e\u043b\u044c\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430RuntimeINSOL-1000\u041f\u043e\u043b\u0435\u0432\u043e\u0439 \u041f\u041b\u041a \u2014   DI\/DO\/AI\/AO, RS-485, OLEDSTM32H, FreeRTOS4diac FORTE \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438 FreeRTOSINSOL Node\u0428\u043b\u044e\u0437 \u2014 \u0411\u0414, OPC UA,   SCADA, webLinux4diac FORTE \u043d\u0430   LinuxINSOL-1000 \u2014 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 \u041f\u041b\u041a \u0441 \u0448\u0438\u043d\u043e\u0439 I-BUS: \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e \u0441\u043b\u0435\u0432\u0430 \u0446\u0435\u043f\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0441\u043f\u0440\u0430\u0432\u0430 \u2014 \u043c\u043e\u0434\u0443\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (I1001 8DO, I1002 8DI, I1003 \/ I1004 \u0430\u043d\u0430\u043b\u043e\u0433 4\u201320 \u043c\u0410 \u0441 HART, I1005 \u0434\u043b\u044f \u0442\u0435\u0440\u043c\u043e\u043f\u0430\u0440\/RTD). \u041c\u0435\u0436\u0434\u0443 \u041f\u041b\u041a \u0432 \u0441\u0435\u0442\u0438 \u2014 \u043e\u0434\u043d\u043e\u043f\u0430\u0440\u043d\u044b\u0439 Ethernet 10BASE-T1L (\u0434\u043e 1500 \u043c \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 10 \u041c\u0431\u0438\u0442\/\u0441, \u043f\u0438\u0442\u0430\u043d\u0438\u0435 PoDL \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u0432\u0438\u0442\u043e\u0439 \u043f\u0430\u0440\u0435).\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u043e\u0442 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e 10BASE-T1L \u0441\u043d\u0438\u0437\u0443 \u0434\u043e SCADA\/MES \u0441\u0432\u0435\u0440\u0445\u0443\u041f\u043e\u043b\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443. \u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u2014 \u043e\u0431\u044b\u0447\u043d\u0430\u044f Ethernet\/Gigabit-\u0441\u0435\u0442\u044c \u0434\u043e SCADA.\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0435\u0442\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u043b\u044c\u043a\u0443-\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u2014 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 Ethernet \u0441\u0435\u0442\u0438.\u0418\u0437 \u0441\u043e\u0444\u0442\u0430:\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4diac IDE \u2014 \u043d\u0430 \u041f\u041a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0421\u0431\u043e\u0440\u043a\u0430 \u043e\u0442 Insol \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442\u0435, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 Eclipse, \u0432 \u043d\u0435\u0451 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b .fbt-\u0442\u0438\u043f\u044b \u043f\u043e\u0434 Insol-Node \u0438 Insol-1000 \u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4diac FORTE \u2014 \u043f\u0440\u043e\u0448\u0438\u0442\u044b\u0439 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 runtime. \u041d\u0430 INSOL-1000 \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 FreeRTOS, \u043d\u0430 INSOL Node \u2014 \u043f\u043e\u0432\u0435\u0440\u0445 Linux. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0435 \u0442\u0438\u043f\u044b IEC 61131-3 \u0440\u0435\u0432. 2, \u0431\u0430\u0437\u043e\u0432\u044b\u0435\/\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435\/\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0435 FB, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b, online-\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041d\u0430 INSOL Node \u043f\u043e\u0432\u0435\u0440\u0445 FORTE \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f: PostgreSQL, OPC UA \u0441\u0435\u0440\u0432\u0435\u0440 (open62541), Modbus TCP \u043a\u043b\u0438\u0435\u043d\u0442 (libmodbus), \u0438 FUXA SCADA.\u041a\u0430\u0447\u0430\u0435\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 4diac IDE \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 insolsoft.ru \u2192 \u00ab\u0422\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u00bb \u2192 \u00ab\u041f\u041e 4diac\u00bb. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u044d\u0442\u043e .zip \u0441 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 Type Library (\u0431\u043b\u043e\u043a\u0438 INSOL_IO, I1000_4_20MA_IN\/OUT, I1000_DISPLAY, I1000_PID, SQL_SET_*, SQL_GET_VAL) \u0438 \u043f\u0430\u0440\u043e\u0439 Application-\u0441\u0445\u0435\u043c. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0440\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u043e \u0448\u0430\u0433\u0430\u043c.\u0427\u0430\u0441\u0442\u044c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0447\u0435\u0440\u0435\u0437 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c IDE, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0423 \u043e\u0431\u043e\u0438\u0445 \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 web \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445.3.1. INSOL-1000: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u0430\u043b\u0438\u0430\u0441\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c http:\/\/192.168.0.132 (\u0430\u0434\u0440\u0435\u0441 \u0432\u0438\u0434\u0435\u043d \u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c OLED). \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041f\u0440\u0438\u0431\u043e\u0440 \u2192 \u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435\u00bb \u2014 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u0441\u0442\u0430\u0440\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u2014 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 web. \u0415\u0441\u043b\u0438 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435 \u043e\u0442\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u0435\u0441\u0442\u044c \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c: \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c \u0434\u0432\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0434\u043e \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0442\u043e\u0433\u0434\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0432 bootloader.\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435: \u0430\u043b\u0438\u0430\u0441\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u0410\u043b\u0438\u0430\u0441 \u2014 \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 PARAMS \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 IB \/ QB \/ IW \/ QW \u0432 4diac. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e: \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 &#8216;ain0&#8217; \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0438\u0434\u0430 \u00abaddr:0,channel:1\u00bb, \u0438 \u044d\u0442\u0438 \u0436\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0432\u0435\u0440\u0445\u043d\u0435\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u2014 PostgreSQL, OPC UA, FUXA.\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0430\u043b\u0438\u0430\u0441\u043e\u0432 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 FORTE \u0432 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 INSOL-1000\u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 1000 \u00ab\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 FORTE\u00bb. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443 \u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u043d \u0438\u0437 4diac.\u0410\u043b\u0438\u0430\u0441\u0411\u043b\u043e\u043a 4diac\u0424\u0438\u0437\u0438\u043a\u0430di0 \u2026 di7 (din0\u2026din7 \u0432 \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435)IB (input bit)\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044bdo0 \u2026 do3 (dout0\u2026dout3 \u0432 \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435)QB (output bit)\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044bain0 \u2026 ain2IW (input word)\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b 4\u201320 \u043c\u0410aout0QW (output word)\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 4\u201320 \u043c\u0410\u0410\u043b\u0438\u0430\u0441\u044b \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 PARAMS \u0431\u043b\u043e\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442 \u2014 &#8216;AIN0&#8217; \u0438 &#8216;ain0&#8217; \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b, \u0438 runtime \u043c\u043e\u043b\u0447\u0430 \u043f\u043e\u0434\u0441\u0443\u043d\u0435\u0442 \u00ab\u043d\u0435 \u0442\u043e\u0442\u00bb. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f (di0\/din0, do0\/dout0) \u2014 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.3.2. INSOL Node: \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430 FORTE\u0422\u043e\u0436\u0435 web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0418\u0434\u0451\u043c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b Forte \u2192 \u0421\u0435\u0440\u0432\u0438\u0441\u044b Forte 3, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00ab\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0437\u0430\u0434\u0430\u0451\u043c \u043f\u043e\u0440\u0442 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 60001), \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 (\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u2014 \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u0430\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 test31). \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c Forte bootfile \u043f\u0443\u0441\u0442\u044b\u043c \u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 FORTE \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442 \u0441\u0442\u0430\u0440\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438\u0437 .fboot \u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0438\u0437 IDE.\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u25b6. \u0412\u0441\u0451 \u2014 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043eIP\u041f\u043e\u0440\u0442 MGRINSOL Node192.168.0.17660001 (\u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430)INSOL-1000192.168.0.13261499 (\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439)\u0427\u0430\u0441\u0442\u044c 4. \u041f\u0440\u043e\u0435\u043a\u0442 \u0432 4diac IDE\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442: File \u2192 New \u2192 4DIAC Project, \u0438\u043c\u044f test33, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u2014 Finish. \u0412 System Explorer \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u0443\u0441\u0442\u044b\u043c System \u0438 Type Library.4.1. \u041f\u043e\u0434\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 INSOL\u0412 Type Library \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 1000, inode, userblock \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 .fbt \u0444\u0430\u0439\u043b\u044b. \u0412 \u0441\u0431\u043e\u0440\u043a\u0435 IDE \u043e\u0442 Insol \u043e\u043d\u0438 \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 4diac \u0441 eclipse.dev, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 insolsoft.ru \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430.System Explorer \u0441 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0431\u043b\u043e\u043a\u043e\u0432Type Library \u043f\u0440\u043e\u0435\u043a\u0442\u0430 test33: \u043f\u0430\u043f\u043a\u0430 1000 \u2014 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (I1000_4_20MA_IN\/OUT, I1000_DISPLAY, I1000_PID, INSOL_IO), \u043f\u0430\u043f\u043a\u0430 inode \u2014 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u0448\u043b\u044e\u0437\u0430 (SQL_GET_VAL, SQL_SET_*), userblock \u2014 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u0412\u043d\u0438\u0437\u0443 \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 4diac 3.1.0.\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u043c\u043e:\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 1000\/: INSOL_IO, I1000_4_20MA_IN, I1000_4_20MA_OUT, I1000_DISPLAY, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e I1000_PID\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 inode\/: SQL_SET_BOOL, SQL_SET_INT, SQL_SET_REAL, SQL_SET_LONG, SQL_SET_STRING, SQL_GET_VAL\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u0412 userblock\/ \u2014 \u043f\u043e\u043a\u0430 \u043f\u0443\u0441\u0442\u043e, \u0441\u044e\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0441\u0432\u043e\u0439 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.4.2. System Configuration \u2014 \u0433\u0434\u0435 \u043a\u0430\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0414\u0432\u0430\u0436\u0434\u044b \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043d\u0430 System. \u041f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u2192 New Device \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0417\u0430\u0434\u0430\u0451\u043c \u0438\u043c\u0435\u043d\u0430 \u0438 MGR_ID:\u0418\u043c\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435\u0422\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430MGR_IDnodeINSOL Node192.168.0.176:60001PLC132INSOL-1000192.168.0.132:61499\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 IDE \u0437\u043d\u0430\u0435\u0442, \u043a\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0442\u0443\u0434\u0430 \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c.4.3. Application \u0434\u043b\u044f INSOL-1000\u0421\u043e\u0437\u0434\u0430\u0451\u043c Application \u0441 \u0438\u043c\u0435\u043d\u0435\u043c PLC132 \u2014 \u044d\u0442\u043e \u0441\u0435\u0442\u044c \u0431\u043b\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0435\u0434\u0435\u0442 \u043d\u0430 \u043f\u043e\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440(Insol-1000). \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0445\u0435\u043c\u044b:\u2022\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 INSOL_IO &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-481539","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/481539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=481539"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/481539\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=481539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=481539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=481539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}