{"id":476677,"date":"2026-04-20T13:28:10","date_gmt":"2026-04-20T13:28:10","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=476677"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=476677","title":{"rendered":"\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0441 OpenPLC"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/articles\/1023492\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 CAN bus \u043a STM32-IHM03, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e I\/O-\u0443\u0437\u043b\u0430 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e OpenPLC.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c Raspberry Pi Pico W \u043f\u043e Modbus RTU \u043a \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 Orange Pi, \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432 \u0441\u0440\u0435\u0434\u0435 OpenPLC Editor \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0445 \u0441\u0445\u0435\u043c (LD) \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u043b\u0435 \u043f\u043e Modbus. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0448\u0438\u043b\u0434\u0430 RS485 CAN HAT, \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0435\u0439 \u043f\u0438\u043d\u043e\u0432 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/p>\n<h2>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h2>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68a\/f70\/85d\/68af7085d2d72dca9360461d390ae020.png\" width=\"2588\" height=\"1917\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/68a\/f70\/85d\/68af7085d2d72dca9360461d390ae020.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68a\/f70\/85d\/68af7085d2d72dca9360461d390ae020.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 Fritzing, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0412\u043a\u0440\u0430\u0442\u0446\u0435 \u043e\u043f\u0438\u0448\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0445\u0435\u043c\u044b, \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0440\u0430\u0437\u0432\u043e\u0434\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 STM32-IHM03<\/h3>\n<p>STM32-IHM03 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c. \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043b\u0430\u0442\u0430 <code>NUCLEO-G431RB<\/code> \u0431\u0435\u0437 \u0441\u0438\u043b\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f <code>X-NUCLEO-IHM16M1<\/code>. \u041a \u043f\u043b\u0430\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 <code>SN65HVD230<\/code> \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435 \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/1023492\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u0420\u044f\u0434\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u0432 \u0432\u0438\u0434\u0435 \u0436\u0435\u043b\u0442\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0441 \u0442\u0440\u0435\u0445\u0444\u0430\u0437\u043d\u044b\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u043c.<\/p>\n<h3>Raspberry pi pico.<\/h3>\n<p>\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>Raspberry pi pico w<\/code> \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a WI-FI \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 MCU, \u043a\u0430\u043a \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u0435. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 OpenPLC.<\/p>\n<h3>\u041e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u0439 PC Raspberry pi.<\/h3>\n<p>\u0417\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u0412\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <code>CAN bus<\/code> \u0438 <code>Modbus<\/code> \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c <code>Node-red<\/code> \u0438 <code>N8N<\/code>. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <code>Orange pi 4 pro<\/code>.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c \u0440\u0435\u043b\u0435 SRD-05VDC-SL-C 5V.<\/h3>\n<p>\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 &#8212; \u041a1 \u0438 \u041a2. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 &#8212; \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u043b\u0435.<\/p>\n<h3>RS485 CAN HAT \u0448\u0438\u043b\u0434 \u0434\u043b\u044f Raspberry pi.<\/h3>\n<p>\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439: CAN bus &#8212; \u043c\u043e\u0434\u0443\u043b\u044c MCP2515, Modbus-\u043c\u043e\u0434\u0443\u043b\u044c MAX485.<\/p>\n<h3>Modbus-\u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 MAX485.<\/h3>\n<p>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a Modbus-\u0441\u0435\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 Raspberry pi pico w.<\/p>\n<p>\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u0441\u0431\u043e\u0440\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0444\u043e\u0442\u043e. \u041a\u0440\u043e\u043c\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043d\u0430 \u043c\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d MCU STM32F401, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e Modbus. \u041d\u043e STM32F401 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d, \u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b Modbus \u043f\u0440\u0438 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043e\u043d \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d. \u041f\u0438\u0442\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432, \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0440\u0435\u043b\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0434\u0443\u043b\u044f HW-131, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0441\u0445\u0435\u043c \u043e\u043d \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d. \u041d\u0430 \u043c\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 HW-131 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u043e, \u0430 \u0441\u0445\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044f. \u041d\u0430 \u0444\u043e\u0442\u043e Orange pi 4 pro \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0441\u0432\u0435\u0440\u0445\u0443 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 STM32-IHM03, \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PC \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441\u0438\u043d\u0435-\u0431\u0435\u043b\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u0441\u043b\u0435\u0432\u0430 &#8212; \u044d\u0442\u043e CAN bus \u043c\u0435\u0436\u0434\u0443 Orange pi \u0438 STM32-IHM03. \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; Modbus \u043c\u0435\u0436\u0434\u0443 Orange pi 4 \u0438 Raspberry pi pico w. \u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u0441\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u043c \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/47a\/a90\/616\/47aa906160a3a056359e4ba41c1c5c24.png\" width=\"783\" height=\"554\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/47a\/a90\/616\/47aa906160a3a056359e4ba41c1c5c24.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/47a\/a90\/616\/47aa906160a3a056359e4ba41c1c5c24.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>Raspberry pi pico pinout<\/h3>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f OpenPLC \u043d\u0430\u043c \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u043f\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u043e\u043b\u0438 PLC. \u041d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0432\u044b\u043b\u043e\u0436\u0438\u043b\u0438 \u0441\u0445\u0435\u043c\u0443 \u0434\u043b\u044f Raspberry pi pico.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b71\/2bf\/2d8\/b712bf2d89a9bef35ad2f8d68675ddfc.png\" width=\"1377\" height=\"974\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b71\/2bf\/2d8\/b712bf2d89a9bef35ad2f8d68675ddfc.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b71\/2bf\/2d8\/b712bf2d89a9bef35ad2f8d68675ddfc.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e Modbus. \u0412 <a href=\"https:\/\/old.autonomylogic.com\/docs\/2-5-modbus-addressing\/\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0414\u043b\u044f \u0447\u0438\u043f\u043e\u0432 RP2040 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">Modbus Data Type<\/p>\n<\/th>\n<th>\n<p align=\"left\">Usage<\/p>\n<\/th>\n<th>\n<p align=\"left\">PLC Address<\/p>\n<\/th>\n<th>\n<p align=\"left\">Modbus Data Address<\/p>\n<\/th>\n<th>\n<p align=\"left\">Data Size<\/p>\n<\/th>\n<th>\n<p align=\"left\">Range<\/p>\n<\/th>\n<th>\n<p align=\"left\">Access<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Discrete Output Coils<\/p>\n<\/td>\n<td>\n<p align=\"left\">Digital Outputs<\/p>\n<\/td>\n<td>\n<p align=\"left\">%QX0.0 \u2013 %QX6.7<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 55<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 bit<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 or 1<\/p>\n<\/td>\n<td>\n<p align=\"left\">RW<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Discrete Input Contacts<\/p>\n<\/td>\n<td>\n<p align=\"left\">Digital Inputs<\/p>\n<\/td>\n<td>\n<p align=\"left\">%IX0.0 \u2013 %IX6.7<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 55<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 bit<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 or 1<\/p>\n<\/td>\n<td>\n<p align=\"left\">R<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Analog Input Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">Analog Input<\/p>\n<\/td>\n<td>\n<p align=\"left\">%IW0 \u2013 %IW31<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 31<\/p>\n<\/td>\n<td>\n<p align=\"left\">16 bits<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 65535<\/p>\n<\/td>\n<td>\n<p align=\"left\">R<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Holding Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">Analog Outputs<\/p>\n<\/td>\n<td>\n<p align=\"left\">%QW0 \u2013 %QW31<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 31<\/p>\n<\/td>\n<td>\n<p align=\"left\">16 bits<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 65535<\/p>\n<\/td>\n<td>\n<p align=\"left\">RW<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Holding Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">Memory (16-bits)<\/p>\n<\/td>\n<td>\n<p align=\"left\">%MW0 \u2013 %MW19<\/p>\n<\/td>\n<td>\n<p align=\"left\">32 \u2013 51<\/p>\n<\/td>\n<td>\n<p align=\"left\">16 bits<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 65535<\/p>\n<\/td>\n<td>\n<p align=\"left\">RW<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Holding Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">Memory (32-bits)<\/p>\n<\/td>\n<td>\n<p align=\"left\">%MD0 \u2013 %MD19<\/p>\n<\/td>\n<td>\n<p align=\"left\">52 \u2013 91<\/p>\n<\/td>\n<td>\n<p align=\"left\">32 bits<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 4294967295<\/p>\n<\/td>\n<td>\n<p align=\"left\">RW<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Holding Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">Memory (64-bits)<\/p>\n<\/td>\n<td>\n<p align=\"left\">%ML0 \u2013 %ML19<\/p>\n<\/td>\n<td>\n<p align=\"left\">92 \u2013 171<\/p>\n<\/td>\n<td>\n<p align=\"left\">64 bits<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u2013 a really big number!<\/p>\n<\/td>\n<td>\n<p align=\"left\">RW<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0428\u0438\u043b\u0434 RS485 CAN HAT<\/h3>\n<p>\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c PC \u043f\u043e CAN bus \u0438 Modbus \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0438\u043b\u0434\u0430. \u041d\u043e <code>RS485 CAN HAT<\/code> \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 Raspberry pi. \u042f \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u0438\u0434\u0435\u0435\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Orange pi 4 pro. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0448\u0438\u043b\u0434\u0430 \u043a Raspberry pi \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/www.waveshare.com\/wiki\/RS485_CAN_HAT\" rel=\"noopener noreferrer nofollow\">\u0441\u0430\u0439\u0442\u0435<\/a> Waveshare, \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e.<br \/> \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485 CAN HAT \u043a Orange pi 4 pro \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0441\u0438\u043b\u0438\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 CAN bus \u0434\u043b\u044f \u0447\u0438\u043f\u0430 MCP2515, \u043e \u0447\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u043e \u0432 \u0441 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/1003936\" rel=\"noopener noreferrer nofollow\">Can bus \u043d\u0430 Orange pi 4 pro<\/a>. \u0427\u0438\u043f MCP2515 \u043d\u0430 RS485 CAN HAT \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 12\u041c\u0413\u0446, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 \u043e\u0432\u0435\u0440\u043b\u0435\u0439 \u0444\u0430\u0439\u043b\u0435 <code>sun60i-a733-mcp2515.dtbo mcp2515.dts<\/code> \u0441 8\u041c\u0433\u0446 \u043d\u0430 12 \u041c\u0413\u0446. \u0432\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 <code>fragment@0<\/code>: <\/p>\n<pre><code>clock-frequency = &lt;12000000&gt;;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u0435\u0435<\/p>\n<pre><code>sudo dtc -@ -I dts -O dtb -o \/boot\/dtb\/allwinner\/overlay\/sun60i-a733-mcp2515.dtbo mcp2515.dts<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043c\u0435\u043d\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u043d \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c UART \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 485-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u043e\u043c SP3485. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u043d\u043e\u0432\u043a\u0438 \u0448\u0438\u043b\u0434\u0430 \u0438 Orange pi 4 pro &#8212; \u044d\u0442\u043e \u043f\u043e\u0440\u0442 UART7. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u0442 \u0432 \u043c\u0435\u043d\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<pre><code class=\"bash\">sudo orangepi-config<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043c\u0435\u043d\u044e <code>System -&gt; Hardware<\/code><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/469\/92e\/630\/46992e63057452254525c469096b008f.png\" width=\"347\" height=\"531\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/469\/92e\/630\/46992e63057452254525c469096b008f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/469\/92e\/630\/46992e63057452254525c469096b008f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 Waveshare \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u0438\u043d\u0430\u0445 RE, DE \u0447\u0438\u043f\u0430 SP3485 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f NPN \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0445\u0435\u043c\u044b. \u0418 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/269\/466\/113\/2694661134e1cb4f0fa1edb514b00a48.png\" width=\"609\" height=\"242\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/269\/466\/113\/2694661134e1cb4f0fa1edb514b00a48.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/269\/466\/113\/2694661134e1cb4f0fa1edb514b00a48.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 Orange pi 4 pro \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0448\u0438\u043b\u0434\u0430. \u0418 \u0448\u0438\u043b\u0434 \u043f\u0440\u0438\u0439\u0434\u0435\u0442\u044c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043f\u043e\u0434\u044b\u043c\u0430\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u043b\u0435\u0439\u0444\u0430, \u0435\u0441\u043b\u0438 \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440 \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443. \u041d\u0430 \u0444\u043e\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u043f\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u043e\u0439\u043a\u0430\u0445 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b. \u0412 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0433\u0440\u0435\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u0448\u0438\u043b\u0434 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e4d\/119\/c00\/e4d119c00f9d0be4f6e990a945a79db6.png\" width=\"777\" height=\"377\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e4d\/119\/c00\/e4d119c00f9d0be4f6e990a945a79db6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e4d\/119\/c00\/e4d119c00f9d0be4f6e990a945a79db6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/500\/042\/8b0\/5000428b02c52c50a566f3c8dd168d9e.png\" width=\"870\" height=\"316\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/500\/042\/8b0\/5000428b02c52c50a566f3c8dd168d9e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/500\/042\/8b0\/5000428b02c52c50a566f3c8dd168d9e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h2>OpenPLC: \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0432 DIY<\/h2>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043c OpenPLC, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 C++ \u0438\u043b\u0438 Python? \u041e\u0442\u0432\u0435\u0442 \u0432 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/IEC_61131-3\" rel=\"noopener noreferrer nofollow\">IEC 61131-3<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043c\u043e\u0442\u043e\u0440\u0430 \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u0438\u043b\u0438 \u043e\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u0432\u0438\u043a\u0430, \u0432 OpenPLC \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0445 \u0441\u0445\u0435\u043c (LD) \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 (FBD) \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u044b.<br \/> \u041c\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0441 <a href=\"https:\/\/autonomylogic.com\/runtime\" rel=\"noopener noreferrer nofollow\">OpenPLC v4<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043a\u0430\u043a \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (I\/O \u0443\u0437\u0435\u043b), \u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u044e\u0442 \u043d\u0430 Node-red.<br \/> \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c Node-RED \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 Modbus TCP. \u0421\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 HMI, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 MCU, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 OpenPLC. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 &#8212; \u044d\u0442\u043e <a href=\"https:\/\/pip-assets.raspberrypi.com\/categories\/686-raspberry-pi-pico-w\/documents\/RP-008312-DS-1-pico-w-datasheet.pdf?disposition=inline\" rel=\"noopener noreferrer nofollow\">Raspberry pi pico w<\/a>. <\/p>\n<p>\u0412\u044b\u0431\u043e\u0440 OpenPLC v4 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/Autonomy-Logic\/openplc-runtime\" rel=\"noopener noreferrer nofollow\">Runtime<\/a> \u0438 <a href=\"https:\/\/github.com\/Autonomy-Logic\/openplc-editor\" rel=\"noopener noreferrer nofollow\">OpenPLC Editor<\/a> \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0441 MIT License.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0430 <a href=\"https:\/\/openplc.discussion.community\/\" rel=\"noopener noreferrer nofollow\">\u0444\u043e\u0440\u0443\u043c\u0435<\/a><\/p>\n<\/li>\n<li>\n<p>OpenPLC editor \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PLC \u043f\u043e IEC 61131-3<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432: Arduino, Raspberry pi, ESP32 \u0438 \u0442.\u0434.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0441\u0432\u044f\u0437\u044c \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u043e <a href=\"https:\/\/habr.com\/ru\/companies\/advantech\/articles\/450234\/\" rel=\"noopener noreferrer nofollow\">Modbus<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 OpenPLC v4 Editor \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/edge.autonomylogic.com\/docs\/openplc-editor\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/www.youtube.com\/@openplc\" rel=\"noopener noreferrer nofollow\">https:\/\/www.youtube.com\/@openplc<\/a>. \u0415\u0441\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 OpenPLC v3, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/doc-en.rvspace.org\/VisionFive2\/PDF\/VisionFive2_OpenPLC.pdf\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041a\u0430\u043a \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, v4 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438, \u0430 \u0434\u043b\u044f v3 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0432\u0435\u0434\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0439: \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e (\u043f\u043e\u043a\u0430) \u043d\u0435 Siemens \u0438 \u043d\u0435 Mitsubishi<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0441\u0442\u043d\u044b\u043c\u0438: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 Raspberry Pi Pico \u0438 OpenPLC \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u043d\u043e \u0434\u043e \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0434\u0430\u043b\u0435\u043a\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435, \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435\u0441\u044c \u043a \u0440\u044f\u0434\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<h4>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u2014 \u044d\u0442\u043e \u043d\u0435 PLC<\/h4>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430 $5 \u2014 \u044d\u0442\u043e \u0447\u0443\u0434\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438, \u043d\u043e \u0432 \u043d\u0435\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0442 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb:<\/p>\n<ul>\n<li>\n<p><strong>\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c (\u042d\u041c\u0421):<\/strong> \u0413\u043e\u043b\u0430\u044f \u043f\u043b\u0430\u0442\u0430 Pico \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u044c \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0436\u0435 \u0449\u0435\u043b\u0447\u043a\u0430 \u043c\u043e\u0449\u043d\u043e\u0433\u043e \u043f\u0443\u0441\u043a\u0430\u0442\u0435\u043b\u044f \u0440\u044f\u0434\u043e\u043c. \u0427\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0451 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439, \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043e\u0433\u043e\u0440\u043e\u0434 \u0438\u0437 \u0433\u0430\u043b\u044c\u0432\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0434\u043e\u0432, \u0441\u0443\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043f\u0438\u0442\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430:<\/strong> \u0412 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u041f\u041b\u041a \u0435\u0441\u0442\u044c \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430. \u0412 \u043d\u0430\u0448\u0435\u0439 \u0441\u0432\u044f\u0437\u043a\u0435 \u00abPico + OpenPLC\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0431\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0432 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0437\u044a\u0435\u043c\u044b \u0438 \u043c\u043e\u043d\u0442\u0430\u0436:<\/strong> Micro-USB \u0438 \u0433\u0440\u0435\u0431\u0435\u043d\u043a\u0438 2.54 \u043c\u043c \u2014 \u044d\u0442\u043e \u0432\u0440\u0430\u0433\u0438 \u0432\u0438\u0431\u0440\u0430\u0446\u0438\u0438. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0448\u043a\u0430\u0444\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430 \u0432\u0438\u043d\u0442\u043e\u0432\u044b\u0445 \u043a\u043b\u0435\u043c\u043c\u0430\u0445 \u0438 DIN-\u0440\u0435\u0439\u043a\u0435.<\/p>\n<\/li>\n<\/ul>\n<h4>OpenPLC v4 vs CODESYS\/TIA Portal \u0438 \u0442.\u043f.<\/h4>\n<p>OpenPLC \u2014 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430, \u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u0433\u0438\u0433\u0430\u043d\u0442\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 CODESYS \u043f\u043e\u043a\u0430 \u0440\u0430\u043d\u043e.<\/p>\n<ul>\n<li>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430:<\/strong> \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432 CODESYS \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Modbus \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043e\u0440, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0451 \u0434\u043e \u0431\u0438\u0442\u0430, \u0442\u043e \u0432 OpenPLC v4 \u0432\u044b \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0432  \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 Modbus:<\/strong> \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435, \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 Modbus RTU Slave \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043f\u0440\u0438\u0437\u043d\u043e\u0439, \u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 (Holding Registers vs Coils) \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u00ab\u0434\u043e\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044f\u00bb \u0438\u043b\u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043a\u043e\u043f\u0430\u043d\u0438\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>Modbus &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043b\u044f \u0434\u0435\u043c\u043e<\/h3>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e Modbus \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/modbuskit.com\/ru\/blog\/modbus-rtu-basic-tutorial\" rel=\"noopener noreferrer nofollow\">Modbus RTU Basics<\/a>. \u0418\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e <a href=\"https:\/\/www.youtube.com\/watch?v=iC5s4CEiOB4\" rel=\"noopener noreferrer nofollow\">OpenPLC on Raspberry Pi with Modbus<\/a> \u0438\u043b\u0438 \u043b\u0435\u043a\u0446\u0438\u0438 <a href=\"https:\/\/www.youtube.com\/watch?v=01v8pP78Xpc\" rel=\"noopener noreferrer nofollow\">\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Modbus RTU<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=1qe4pd9dhOA&amp;t=302s\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e Modbus RTU<\/a>.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 Modbus: <\/p>\n<ul>\n<li>\n<p><strong>RTU<\/strong> &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435<\/p>\n<\/li>\n<li>\n<p><strong>TCP<\/strong> &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e Ethernet \u0438\u043b\u0438 WI-FI<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Raspberry pi pico w \u043f\u043e \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435 Modbus RTU \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Modbus-\u043c\u043e\u0434\u0443\u043b\u044f MAX485 \u043a \u0448\u0438\u043b\u0434\u0443 RS485 CAN HAT.<br \/> \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0438\u0437 \u0444\u043e\u0440\u0443\u043c\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenPLC \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e Modbus. \u0412 \u043d\u0430\u0448\u0435\u043c \u0434\u0435\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Modbus TCP \u0434\u043b\u044f \u043e\u043d\u0430\u0439\u043d-\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<p>Modbus \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u044c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u0438\u043d \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0443\u0437\u0435\u043b Master \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0434\u043e\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Slave. Master \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a Slave. \u0417\u0430\u043f\u0440\u043e\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u0430\u0434\u0440\u0435\u0441 \u0432\u0435\u0434\u043e\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>Modbus-\u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Modbus. \u0414\u043d\u044f \u043d\u0430\u0441 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e Raspberry pi pico w \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 Slave-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<br \/> Master-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Orange pi \u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 Node-red \u043e \u0447\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u0435\u0435.<br \/> \u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438. \u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u0442\u0443\u0448\u043a\u0430\u043c\u0438.<br \/> \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 Modbus-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043a\u0430\u0442\u0443\u0448\u0435\u043a.<\/p>\n<h4>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 Modbus-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 (Function Codes)<\/h4>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 Modbus \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (Function Code, FC), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">FC<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">PLC-\u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC01<\/p>\n<\/td>\n<td>\n<p align=\"left\">Read Coils<\/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 <code>%QX<\/code> (\u043a\u0430\u0442\u0443\u0448\u043a\u0438)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC02<\/p>\n<\/td>\n<td>\n<p align=\"left\">Read Discrete Inputs<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b <code>%IX<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC03<\/p>\n<\/td>\n<td>\n<p align=\"left\">Read Holding Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044b <code>%QW<\/code>, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0430\u043c\u044f\u0442\u0438 <code>%MW<\/code>, <code>%MD<\/code>, <code>%ML<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC04<\/p>\n<\/td>\n<td>\n<p align=\"left\">Read Input Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b <code>%IW<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC05<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write Single Coil<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0434\u0438\u043d \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 <code>%QX<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC06<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write Single Register<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0434\u0438\u043d Holding Register (<code>%QW<\/code> \u0438\u043b\u0438 <code>%MW<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC15<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write Multiple Coils<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 <code>%QX<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FC16<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write Multiple Registers<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e Holding Registers (<code>%QW<\/code>, <code>%MW<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u043c\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b:<\/p>\n<ul>\n<li>\n<p><strong>FC03<\/strong> \u2014 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432: \u0441\u0447\u0438\u0442\u0430\u0442\u044c <code>CYRCLE_STATE<\/code> (<code>%MW1<\/code>), \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0448\u0430\u0433 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>FC05<\/strong> \u2014 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043a\u0430\u0442\u0443\u0448\u043a\u0443: \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u043b\u0435 K1\/K2 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>FC06<\/strong> \u2014 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043e\u0434\u0438\u043d \u0440\u0435\u0433\u0438\u0441\u0442\u0440: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>CMD_WORD<\/code> (<code>%MW0<\/code>, Modbus-\u0430\u0434\u0440\u0435\u0441 32) \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u0430\u0447\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>FC01<\/strong> \u2014 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u0430\u0442\u0443\u0448\u0435\u043a: \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 <code>%QX0.0<\/code> (K1) \u0438 <code>%QX0.1<\/code> (K2).<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441 \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443<\/h3>\n<p>\u041a\u0442\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u043a \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PLC, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430 \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 OpenPLC, \u0438\u043b\u0438 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0443\u0440\u043e\u043a\u0438 \u043d\u0430 Youtube. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041a\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c PLC \u043c\u043e\u0433\u0443\u0442 \u0441\u043c\u0435\u043b\u043e \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u0442\u044c \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0412\u043a\u0440\u0430\u0442\u0446\u0435 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0432 PLC \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>%Q<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u044b\u0445\u043e\u0434, \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>%I<\/code> &#8212; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u0445\u043e\u0434, \u0430 <code>%M<\/code> &#8212; \u043c\u0435\u0440\u043a\u0435\u0440, \u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0433\u0438 (\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435) \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421\u0438\u043c\u0432\u043e\u043b <code>X<\/code> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 (\u0431\u0438\u0442\u043e\u0432\u044b\u0439) \u0441\u0438\u0433\u043d\u0430\u043b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>%IX0.0<\/code> \u0437\u043d\u0430\u0447\u0438\u0442 &#8212; \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0431\u0430\u0439\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c 0 \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0431\u0438\u0442\u0430 \u0442\u043e\u0436\u0435 \u0440\u0430\u0432\u043d\u044b\u043c 0. \u0421\u0438\u0433\u043d\u0430\u043b <code>%QX0.1<\/code> \u0437\u043d\u0430\u0447\u0438\u0442 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434, \u0431\u0430\u0439\u0442 0, \u0431\u0438\u0442 1. \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b <code>%QX<\/code> \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u0430\u0442\u0443\u0448\u043a\u043e\u0439 (coil), \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0448\u043b\u043e \u043e\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043a\u0430\u0442\u0443\u0448\u043a\u0438 \u0440\u0435\u043b\u0435, \u0442.\u043a. \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0435 \u0440\u0435\u043b\u0435 \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0435. \u0421\u0438\u043c\u0432\u043e\u043b <code>W<\/code> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043b\u043e\u0432\u043e (2 \u0431\u0430\u0439\u0442\u0430) \u0438\u0437 16 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 (\u0431\u0438\u0442). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>%QW0<\/code> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c 0; <code>%IW1<\/code> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u0445\u043e\u0434 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c 1; <code>%MW0<\/code> &#8212; \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e 16 bit, \u0430\u0434\u0440\u0435\u0441 0. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 PLC \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434 \u0442\u0438\u043f\u043e\u043c \u0442\u0435\u0433\u0430 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442. \u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0433\u043e\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0414\u043b\u044f \u0447\u0438\u043f\u043e\u0432 RP2040, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 Raspberry pi pico \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f LD &#8212; ladder diagram \u0438\u043b\u0438 \u043b\u0435\u0441\u0442\u043d\u0438\u0447\u043d\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430.<\/p>\n<h4>\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/h4>\n<p>\u0412 LD \u043b\u043e\u0433\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>\u0426\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0446\u0435\u043f\u044c &#8212; \u043b\u044e\u0431\u043e\u0439 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b: \u0432\u0445\u043e\u0434, \u043a\u0430\u0442\u0443\u0448\u043a\u0430, \u043c\u0435\u0440\u043a\u0435\u0440, \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b<\/p>\n<pre><code>-| |-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0444\u0440\u043e\u043d\u0442\u0443 (\u043d\u0430\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e)<\/p>\n<pre><code>-|P|-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0441\u043f\u0430\u0434\u0443 (\u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e)<\/p>\n<pre><code>-|N|-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043d\u0432\u0435\u0440\u0441\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0430\u043a\u0442, \u0442.\u0435. \u0440\u0430\u0437\u043c\u044b\u043a\u0430\u044e\u0449\u0438\u0439<\/p>\n<pre><code class=\"css\">-|\/|-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0442\u0443\u0448\u043a\u0430 &#8212; \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0446\u0435\u043f\u044c\u044e<\/p>\n<pre><code class=\"css\">-( )- <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0442\u0443\u0448\u043a\u0430, \u043e\u0441\u0442\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0446\u0435\u043f\u0438 (Set)<\/p>\n<pre><code class=\"css\">-(S)-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0431\u0440\u043e\u0441 \u0440\u0430\u043d\u0435\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u0430\u0442\u0443\u0448\u043a\u0438 (Reset)<\/p>\n<pre><code class=\"css\">-(R)-<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0442\u0443\u0448\u043a\u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0432\u0435\u0440\u0441\u043d\u044b\u043c\u0438, \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0444\u0440\u043e\u043d\u0442\u0443 \u0438\u043b\u0438 \u043f\u043e \u0441\u043f\u0430\u0434\u0443, \u043d\u043e \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0436\u0435. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u043c\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0435\u0434\u043a\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c.<br \/> \u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0446\u0435\u043f\u0438.<br \/> \u0427\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0430\u044f\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0435\u0440\u0442\u0435 (\u0448\u0438\u043d\u0435), \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043f\u0440\u0430\u0432\u043e\u0439 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0448\u0438\u043d\u043e\u0439, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043f\u044c\u044e \u0438\u043b\u0438 \u0441\u0435\u0442\u044c\u044e. <\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0443\u0448\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u0439\u0434\u0435\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u0433\u043e \u0432\u044b\u0438\u0441\u043a\u0438\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b. \u0412\u0441\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u0442\u0443\u0448\u043a\u0443, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e. \u0410 \u0432\u0441\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b &#8212; \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0421\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0442 &#8212; \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u0438\u0435\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0443 \u0446\u0435\u043f\u044c \u0438 \u043e\u0434\u043d\u0443 \u043a\u0430\u0442\u0443\u0448\u043a\u0443. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043f\u044c \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u043a\u0430\u0442\u0443\u0448\u043a\u0438 <code>-(S)-<\/code> \u0438 \u0441\u0431\u0440\u043e\u0441 <code>-(R)-<\/code>.<\/p>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f MOVE<\/h4>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>MOVE<\/code> \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435, \u043a\u0430\u043a \u0432 Assembler, \u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u0435\u0435. \u041d\u0430 LD \u0446\u0435\u043f\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a \u0448\u0438\u043d\u0430\u043c, \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u043c \u0432\u044b\u0432\u043e\u0434\u0430\u043c. <\/p>\n<p>\u0412 OpenPLC Editor v4 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b EN, ENO \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430 \u0446\u0435\u043f\u044c, \u043d\u0443\u0436\u043d\u043e \u043f\u043e \u043d\u0435\u0439 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0438 \u0432 \u043c\u0435\u043d\u044e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u0435\u0440 Execution Control.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e76\/5f8\/562\/e765f8562589dd8905c5b68b047e4fed.png\" width=\"314\" height=\"370\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e76\/5f8\/562\/e765f8562589dd8905c5b68b047e4fed.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e76\/5f8\/562\/e765f8562589dd8905c5b68b047e4fed.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0422\u0430\u0439\u043c\u0435\u0440 TON<\/h4>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e TON \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/edge.autonomylogic.com\/docs\/openplc-editor\/standard-function-blocks\/timer-blocks\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<br \/> TON \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 On-Delay Timer. \u0411\u043b\u043e\u043a TON \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u0432\u044b\u0445\u043e\u0434\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 IN.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 PT \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>T#2s<\/code><\/p>\n<p>\u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 CYCLE_RUN_SET \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0448\u0438\u043d\u0435. \u0417\u0430\u0442\u0435\u043c 2 \u0441\u0435\u043a \u0442\u0430\u0439\u043c\u0435\u0440 \u0441 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u0432\u044b\u0445\u043e\u0434\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 2 \u0441\u0435\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f MOVE \u0432\u043d\u043e\u0441\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 2 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e CYRCLE_STATE. \u0418 \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u0442\u0443\u0448\u043a\u0430 TON0_TMP_ON, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u043a \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/526\/1a4\/26d\/5261a426d345a67161beb6f65eb71924.png\" width=\"973\" height=\"193\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/526\/1a4\/26d\/5261a426d345a67161beb6f65eb71924.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/526\/1a4\/26d\/5261a426d345a67161beb6f65eb71924.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f EQ<\/h4>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f `==`<\/p>\n<p>\u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043f\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0434\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 CMD_WORD \u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b CMD_1. \u0412\u0442\u043e\u0440\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 CMD_WORD \u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 2, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b CMD_2.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/55d\/b2e\/0d7\/55db2e0d7f1a22811bf17e6e295f10fb.png\" width=\"853\" height=\"231\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/55d\/b2e\/0d7\/55db2e0d7f1a22811bf17e6e295f10fb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/55d\/b2e\/0d7\/55db2e0d7f1a22811bf17e6e295f10fb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f GT, GE, LT, LE, NE.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h3>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435 <code>Programs -&gt; main<\/code>.<br \/> \u0410 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 `Device -&gt; configuration<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/048\/6e2\/315\/0486e2315827da869224d56806f26555.png\" width=\"281\" height=\"420\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/048\/6e2\/315\/0486e2315827da869224d56806f26555.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/048\/6e2\/315\/0486e2315827da869224d56806f26555.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>\u0442\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (Device): Raspberry pico w<\/p>\n<\/li>\n<li>\n<p>USB-\u043f\u043e\u0440\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 (Communication port): \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 &#8212; \u044d\u0442\u043e COM21<\/p>\n<\/li>\n<li>\n<p>\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c Modbus: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u043e\u0434\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Enable Modbus RTU<\/code> Interface: <code>Serial1<\/code> &#8212; \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d UART0 \u043f\u0438\u043d\u044b GP0, GP1 Baud Rate: <code>115200<\/code> &#8212; \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e UART Slave ID: <code>10<\/code> &#8212; \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043b\u044e\u0431\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442 1 \u0434\u043e 247 RS 485 EN Pin: <code>3<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0438\u043d \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u043c\u043e\u0434\u0443\u043b\u044f RS485. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c GP3. <\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0430\u044f WI-FI \u0441\u0432\u044f\u0437\u044c \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u043b\u0438 \u043d\u0430 \u043a\u0430\u043a Modbus TCP \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Enable Modbus TCP<\/code> \u0414\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Enable DHCP<\/code> \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043a Wi-Fi<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Pin mapping \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0438\u043d\u044b. \u0414\u043b\u044f Raspberry pico \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432\u044b\u0448\u0435<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/356\/d6f\/aa4\/356d6faa45c4b2a59f1954217242c03b.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/356\/d6f\/aa4\/356d6faa45c4b2a59f1954217242c03b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/356\/d6f\/aa4\/356d6faa45c4b2a59f1954217242c03b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0420\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u0435<\/h3>\n<p>\u041e\u043f\u0438\u0448\u0435\u043c \u0441\u0443\u0442\u044c \u0434\u0435\u043c\u043e-PLC \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f Raspberry pi pico w. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448 PLC \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0443\u043c\u044f \u0440\u0435\u043b\u0435 <code>\u041a1<\/code> \u0438 <code>\u041a2<\/code>. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u0440\u0435\u043b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b <code>%QX0.0<\/code> (GP14) &#8212; K1 \u0438 <code>%QX0.1<\/code> (GP15) &#8212; K2 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0412\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u043c\u0438 \u0440\u0435\u043b\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c <code>%IX0.3<\/code> (GP9) &#8212; K1, <code>%IX0.5<\/code> (GP11) &#8212; K2. \u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0440\u0435\u043b\u0435: <code>%IX0.4<\/code> (GP10) &#8212; K1, <code>%IX0.6<\/code> (GP12) &#8212; K2.<br \/> \u0418\u0442\u043e\u0433\u043e \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0442\u0443\u0448\u043a\u0443 (\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434), \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0435 \u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0442 (\u0441\u0430\u043c \u0441\u0435\u0431\u044f \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438), \u0442.\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u0430\u0442\u0443\u0448\u043a\u0443 \u0440\u0435\u043b\u0435. \u0421\u0438\u043c\u0432\u043e\u043b <code>P<\/code> \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0441\u0442\u0438\u043d\u043e\u043a \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u043e \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u043c\u0443 \u0444\u0440\u043e\u043d\u0442\u0443. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0441\u0438\u0433\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043a\u0430\u043d-\u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u0432\u0445\u043e\u0434\u043d\u043e\u043c \u043f\u0438\u043d\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c. \u0422\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0432 PLC-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043e\u0442 \u043a\u043d\u043e\u043f\u043e\u043a.<\/p>\n<p>\u0420\u0435\u043b\u0435\u0439\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u0435 K1, K2.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1ae\/32d\/c51\/1ae32dc51a24be5f7a989fadc3516cc3.png\" width=\"612\" height=\"648\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1ae\/32d\/c51\/1ae32dc51a24be5f7a989fadc3516cc3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1ae\/32d\/c51\/1ae32dc51a24be5f7a989fadc3516cc3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/h3>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0432 \u0441\u0440\u0435\u0434\u0435 OpenPLC \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0438\u0442\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u0440\u043a\u0435\u0440\u0430\u043c\u0438, \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435. \u0422.\u0435. \u043f\u043e\u043a\u0430 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043a\u0430\u043a %MX0.1 \u0438 \u0442.\u043f., \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e Modbus \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Single Register \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435\u043c \u0431\u0438\u0442\u043e\u0432. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u043d\u0430\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043e\u043b\u0436\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0412\u044b\u0448\u0435 \u0431\u044b\u043b\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f EQ. \u0422\u0430\u043a \u0432\u043e\u0442, \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 CMD_1, CMD_2 \u0438 \u0434\u0440., \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u043e\u043b\u044c \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043c\u0435\u0440\u043a\u0435\u0440\u043e\u0432-\u0442\u0435\u0433\u043e\u0432, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0438\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f <code>main<\/code>. \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0442\u0443\u0448\u043a\u0430\u043c\u0438 \u0440\u0435\u043b\u0435 \u043d\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Modbus <code>write single coil<\/code> \u0432 \u043e\u0431\u0445\u043e\u0434 \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0446\u0435\u043f\u0438 LD, \u0430 \u043e\u043f\u043e\u0441\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0410 \u043f\u0440\u044f\u043c\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043a\u0430\u0442\u0443\u0448\u043a\u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f.<\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Modbus-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Holding Memory Registers \u0441 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 %MW0 \u2013 %MW19, \u0438\u043b\u0438 Modbus Data Address: 32 \u2013 51.<br \/> \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e CMD_WORD \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c %MW0 &#8212; \u0432 Modbus 32. \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0431\u0438\u0442\u044b, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0446\u0435\u043f\u044c \u043a\u0430\u0442\u0443\u0448\u0435\u043a \u0440\u0435\u043b\u0435:<\/p>\n<ul>\n<li>\n<p>if(CMD_WORD == 1) CMD_1 = true;<\/p>\n<\/li>\n<li>\n<p>if(CMD_WORD == 2) CMD_2 = true;<\/p>\n<\/li>\n<li>\n<p>if(CMD_WORD == 3) CMD_3 = true;<\/p>\n<\/li>\n<li>\n<p>if(CMD_WORD == 4) CMD_4 = true;<\/p>\n<\/li>\n<li>\n<p>if(CMD_WORD == 5) CYCLE_RUN = true; \/\/\u0437\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0446\u0438\u043a\u043b<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 CYRCLE_STATE \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c %MW1, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0433\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 &#8212; \u0430\u043d\u0430\u043b\u043e\u0433 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 while, \u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0431\u0438\u0442\u0430, \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 CMD_WORD.<\/p>\n<h3>\u041e\u043f\u0438\u0448\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435<\/h3>\n<p>if(CMD_WORD == 5) CYCLE_RUN = true; \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 CMD_WORD \u0440\u0430\u0432\u043d\u043e 5, \u0446\u0438\u043a\u043b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c38\/598\/d06\/c38598d063f582edeb7d34d45ca37a59.png\" width=\"519\" height=\"230\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c38\/598\/d06\/c38598d063f582edeb7d34d45ca37a59.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c38\/598\/d06\/c38598d063f582edeb7d34d45ca37a59.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u043e\u043d\u0442\u0430\u043a\u0442 CYCLE_RUN \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 CYCLE_RUN_SET <code>-(S)-<\/code><br \/> \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f MOVE \u0432\u043d\u043e\u0441\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f CYRCLE_STATE<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/365\/892\/551\/36589255128943e31cfc475141e197ba.png\" width=\"759\" height=\"190\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/365\/892\/551\/36589255128943e31cfc475141e197ba.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/365\/892\/551\/36589255128943e31cfc475141e197ba.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u043f\u044f\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0441 \u0442\u0430\u0439\u043c\u0435\u0440\u0430\u043c\u0438. \u041e\u043f\u0438\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e &#8212; \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u043b\u0435 K1, K2. <\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0430\u043a\u0442 CYCLE_RUN_SET \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0442\u0430\u0439\u043c\u0435\u0440 TON0. <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 2 \u0441\u0435\u043a (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 T#2s) \u0432 CYRCLE_STATE \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 2 <\/p>\n<\/li>\n<li>\n<p>\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b TON0_TMP_ON<\/p>\n<\/li>\n<li>\n<p>TON0_TMP_ON \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 BTN_ON_1_TMP<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 BTN_ON_1_TMP \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0442\u0443\u0448\u043a\u0443 \u0440\u0435\u043b\u0435 K1. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0446\u0435\u043f\u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b CYCLE_RUN_SET <code>-(R)-<\/code><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/874\/fbd\/799\/874fbd799a4c7e17fd6930ed57b4d4d8.png\" width=\"980\" height=\"573\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/874\/fbd\/799\/874fbd799a4c7e17fd6930ed57b4d4d8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/874\/fbd\/799\/874fbd799a4c7e17fd6930ed57b4d4d8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/805\/5e1\/067\/8055e10671439772197398252c5c24b6.png\" width=\"966\" height=\"365\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/805\/5e1\/067\/8055e10671439772197398252c5c24b6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/805\/5e1\/067\/8055e10671439772197398252c5c24b6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0435\u043f\u0438, \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0443\u0448\u0435\u043a \u0440\u0435\u043b\u0435. \u041f\u043e\u043c\u043d\u0438\u0442\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e, \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435? \u042d\u0442\u0438 \u0446\u0435\u043f\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u043b\u0443\u0436\u0430\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fdd\/a15\/974\/fdda1597455f562c757fcf13d951b46e.png\" width=\"345\" height=\"463\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fdd\/a15\/974\/fdda1597455f562c757fcf13d951b46e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fdd\/a15\/974\/fdda1597455f562c757fcf13d951b46e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a7\/81f\/5ad\/5a781f5ad54648003cca52921cac8a5d.png\" width=\"345\" height=\"463\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5a7\/81f\/5ad\/5a781f5ad54648003cca52921cac8a5d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a7\/81f\/5ad\/5a781f5ad54648003cca52921cac8a5d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u0442\u044c \u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438, \u043b\u043e\u0433\u0438\u043a\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443:<\/p>\n<ul>\n<li>\n<p>\u0412\u0445\u043e\u0434\u043d\u043e\u0439 Modbus \u0441\u0438\u0433\u043d\u0430\u043b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432 CMD_WORD \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 5, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u0446\u0438\u043a\u043b, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f CYCLE_RUN_SET, CYRCLE_STATE = 1<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0435 \u041a1, CYRCLE_STATE = 2<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0435 \u041a1, CYRCLE_STATE = 3<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0435 \u041a2, CYRCLE_STATE = 4<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0435 \u041a2, CYRCLE_STATE = 5<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f CYCLE_RUN_SET, CYRCLE_STATE = 0<\/p>\n<\/li>\n<\/ul>\n<p>\u0438\u043b\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0446\u0438\u043a\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">Time, sec<\/p>\n<\/th>\n<th>\n<p align=\"left\">CMD_WORD<\/p>\n<\/th>\n<th>\n<p align=\"left\">CYRCLE_STATE<\/p>\n<\/th>\n<th>\n<p align=\"left\">CYCLE_RUN_SET<\/p>\n<\/th>\n<th>\n<p align=\"left\">K1<\/p>\n<\/th>\n<th>\n<p align=\"left\">K2<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/vladipirogov\/Relay-Control-via-Modbus\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u043c<\/a> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\n<h3>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e Modbus \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e QModbus<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c Node-RED, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e OpenPLC \u043d\u0430 Pico W \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 Modbus-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <strong>QModbus<\/strong> \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 open-source Modbus Master \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 RTU \u0438 TCP. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0430 <a href=\"https:\/\/sourceforge.net\/projects\/qmodbus\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> \u0438\u043b\u0438 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f <a href=\"https:\/\/github.com\/ed-chemnitz\/qmodbus\" rel=\"noopener noreferrer nofollow\">github.com\/ed-chemnitz\/qmodbus<\/a>.<\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Pico W \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u043a \u0442\u043e\u0439 \u0436\u0435 Wi-Fi \u0441\u0435\u0442\u0438, \u0447\u0442\u043e \u0438 \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440, \u0438 OpenPLC Runtime \u0437\u0430\u043f\u0443\u0449\u0435\u043d.<\/p>\n<p>\u0412 QModbus:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Modbus TCP<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043f\u043e\u043b\u044f Network Address \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 Pico W.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0440\u0442 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u2014 <strong>502<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Slave ID: \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OpenPLC (\u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u2014 <code>10<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 Function code<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 Start address <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 Num of coils<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043d\u0438\u0436\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u043e\u043b\u0435 Data<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 Send<\/p>\n<\/li>\n<\/ol>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/69e6282580609702592e631e\" data-style=\"\" id=\"69e6282580609702592e631e\" width=\"\" data-habr-games=\"\"><\/div>\n<p><strong>\u0427\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435: Raspberry Pi Pico W, \u0448\u0438\u043b\u0434 RS485 CAN HAT, \u043c\u043e\u0434\u0443\u043b\u0438 \u0440\u0435\u043b\u0435 \u0438 STM32-IHM03 \u0432 \u0435\u0434\u0438\u043d\u0443\u044e \u043c\u0430\u043a\u0435\u0442\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0448\u0438\u043b\u0434 RS485 CAN HAT \u043d\u0430 Orange Pi 4 Pro: \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0432\u0435\u0440\u043b\u0435\u0439 MCP2515 \u043f\u043e\u0434 \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 12 \u041c\u0413\u0446 \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 UART-\u043f\u043e\u0440\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0435\u0439 \u043f\u0438\u043d\u043e\u0432 \u0438 Modbus-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0447\u0438\u043f\u0430 RP2040.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 OpenPLC Editor v4: \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0447\u043d\u043e\u0439 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 LD.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043e\u0439\u0442\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 OpenPLC v4 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u0438\u0442\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u0440\u043a\u0435\u0440\u0430\u043c\u0438 <code>%MX<\/code> \u0447\u0435\u0440\u0435\u0437 \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u0435\u0441\u044f \u0441\u043b\u043e\u0432\u043e <code>%MW<\/code> \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f EQ.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041d\u0430 \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:<\/strong><br \/> OpenPLC v4 \u2014 \u0436\u0438\u0432\u043e\u0439, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0435\u0449\u0451 \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0438\u0442\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u0440\u043a\u0435\u0440\u0430\u043c\u0438), \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c <a href=\"https:\/\/openplc.discussion.community\/\" rel=\"noopener noreferrer nofollow\">\u0444\u043e\u0440\u0443\u043c\u043e\u043c<\/a> \u0438 <a href=\"https:\/\/github.com\/Autonomy-Logic\/openplc-editor\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c<\/a>, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\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\/1025660\/\">https:\/\/habr.com\/ru\/articles\/1025660\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 CAN bus \u043a STM32-IHM03, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e I\/O-\u0443\u0437\u043b\u0430 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e OpenPLC.\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c Raspberry Pi Pico W \u043f\u043e Modbus RTU \u043a \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 Orange Pi, \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432 \u0441\u0440\u0435\u0434\u0435 OpenPLC Editor \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0445 \u0441\u0445\u0435\u043c (LD) \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u043b\u0435 \u043f\u043e Modbus. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0448\u0438\u043b\u0434\u0430 RS485 CAN HAT, \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0435\u0439 \u043f\u0438\u043d\u043e\u0432 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0421\u0445\u0435\u043c\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 Fritzing, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0412\u043a\u0440\u0430\u0442\u0446\u0435 \u043e\u043f\u0438\u0448\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0445\u0435\u043c\u044b, \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0440\u0430\u0437\u0432\u043e\u0434\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439.\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 STM32-IHM03STM32-IHM03 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c. \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043b\u0430\u0442\u0430 NUCLEO-G431RB \u0431\u0435\u0437 \u0441\u0438\u043b\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f X-NUCLEO-IHM16M1. \u041a \u043f\u043b\u0430\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 SN65HVD230 \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0420\u044f\u0434\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d PMSM-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u0432 \u0432\u0438\u0434\u0435 \u0436\u0435\u043b\u0442\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0441 \u0442\u0440\u0435\u0445\u0444\u0430\u0437\u043d\u044b\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u043c.Raspberry pi pico.\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Raspberry pi pico w \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a WI-FI \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 MCU, \u043a\u0430\u043a \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u0435. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 OpenPLC.\u041e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u0439 PC Raspberry pi.\u0417\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u0412\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f CAN bus \u0438 Modbus \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c Node-red \u0438 N8N. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Orange pi 4 pro.\u041c\u043e\u0434\u0443\u043b\u044c \u0440\u0435\u043b\u0435 SRD-05VDC-SL-C 5V.\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 &#8212; \u041a1 \u0438 \u041a2. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 &#8212; \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u043b\u0435.RS485 CAN HAT \u0448\u0438\u043b\u0434 \u0434\u043b\u044f Raspberry pi.\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439: CAN bus &#8212; \u043c\u043e\u0434\u0443\u043b\u044c MCP2515, Modbus-\u043c\u043e\u0434\u0443\u043b\u044c MAX485.Modbus-\u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 MAX485.\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a Modbus-\u0441\u0435\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 Raspberry pi pico w.\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u0441\u0431\u043e\u0440\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0444\u043e\u0442\u043e. \u041a\u0440\u043e\u043c\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043d\u0430 \u043c\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d MCU STM32F401, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e Modbus. \u041d\u043e STM32F401 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d, \u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b Modbus \u043f\u0440\u0438 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043e\u043d \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d. \u041f\u0438\u0442\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432, \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0440\u0435\u043b\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0434\u0443\u043b\u044f HW-131, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0441\u0445\u0435\u043c \u043e\u043d \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d. \u041d\u0430 \u043c\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 HW-131 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u043e, \u0430 \u0441\u0445\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044f. \u041d\u0430 \u0444\u043e\u0442\u043e Orange pi 4 pro \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0441\u0432\u0435\u0440\u0445\u0443 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 STM32-IHM03, \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PC \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441\u0438\u043d\u0435-\u0431\u0435\u043b\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u0441\u043b\u0435\u0432\u0430 &#8212; \u044d\u0442\u043e CAN bus \u043c\u0435\u0436\u0434\u0443 Orange pi \u0438 STM32-IHM03. \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; Modbus \u043c\u0435\u0436\u0434\u0443 Orange pi 4 \u0438 Raspberry pi pico w. \u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u0441\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u043c \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. Raspberry pi pico pinout\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f OpenPLC \u043d\u0430\u043c \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u043f\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u043e\u043b\u0438 PLC. \u041d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0432\u044b\u043b\u043e\u0436\u0438\u043b\u0438 \u0441\u0445\u0435\u043c\u0443 \u0434\u043b\u044f Raspberry pi pico.\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e Modbus. \u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0414\u043b\u044f \u0447\u0438\u043f\u043e\u0432 RP2040 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430.Modbus Data TypeUsagePLC AddressModbus Data AddressData SizeRangeAccessDiscrete Output CoilsDigital Outputs%QX0.0 \u2013 %QX6.70 \u2013 551 bit0 or 1RWDiscrete Input ContactsDigital Inputs%IX0.0 \u2013 %IX6.70 \u2013 551 bit0 or 1RAnalog Input RegistersAnalog Input%IW0 \u2013 %IW310 \u2013 3116 bits0 \u2013 65535RHolding RegistersAnalog Outputs%QW0 \u2013 %QW310 \u2013 3116 bits0 \u2013 65535RWHolding RegistersMemory (16-bits)%MW0 \u2013 %MW1932 \u2013 5116 bits0 \u2013 65535RWHolding RegistersMemory (32-bits)%MD0 \u2013 %MD1952 \u2013 9132 bits0 \u2013 4294967295RWHolding RegistersMemory (64-bits)%ML0 \u2013 %ML1992 \u2013 17164 bits0 \u2013 a really big number!RW\u0428\u0438\u043b\u0434 RS485 CAN HAT\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c PC \u043f\u043e CAN bus \u0438 Modbus \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0438\u043b\u0434\u0430. \u041d\u043e RS485 CAN HAT \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 Raspberry pi. \u042f \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u0438\u0434\u0435\u0435\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Orange pi 4 pro. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0448\u0438\u043b\u0434\u0430 \u043a Raspberry pi \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Waveshare, \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485 CAN HAT \u043a Orange pi 4 pro \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0441\u0438\u043b\u0438\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 CAN bus \u0434\u043b\u044f \u0447\u0438\u043f\u0430 MCP2515, \u043e \u0447\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u043e \u0432 \u0441 \u0441\u0442\u0430\u0442\u044c\u0435 Can bus \u043d\u0430 Orange pi 4 pro. \u0427\u0438\u043f MCP2515 \u043d\u0430 RS485 CAN HAT \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 12\u041c\u0413\u0446, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 \u043e\u0432\u0435\u0440\u043b\u0435\u0439 \u0444\u0430\u0439\u043b\u0435 sun60i-a733-mcp2515.dtbo mcp2515.dts \u0441 8\u041c\u0433\u0446 \u043d\u0430 12 \u041c\u0413\u0446. \u0432\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 fragment@0: clock-frequency = &lt;12000000&gt;;\u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u0435\u0435sudo dtc -@ -I dts -O dtb -o \/boot\/dtb\/allwinner\/overlay\/sun60i-a733-mcp2515.dtbo mcp2515.dts\u0412 \u043c\u0435\u043d\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u043d \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c UART \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 485-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u043e\u043c SP3485. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u043d\u043e\u0432\u043a\u0438 \u0448\u0438\u043b\u0434\u0430 \u0438 Orange pi 4 pro &#8212; \u044d\u0442\u043e \u043f\u043e\u0440\u0442 UART7. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u0442 \u0432 \u043c\u0435\u043d\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443sudo orangepi-config\u0418 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043c\u0435\u043d\u044e System -&gt; Hardware\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 Waveshare \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u0438\u043d\u0430\u0445 RE, DE \u0447\u0438\u043f\u0430 SP3485 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f NPN \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0445\u0435\u043c\u044b. \u0418 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 Orange pi 4 pro \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0448\u0438\u043b\u0434\u0430. \u0418 \u0448\u0438\u043b\u0434 \u043f\u0440\u0438\u0439\u0434\u0435\u0442\u044c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043f\u043e\u0434\u044b\u043c\u0430\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u043b\u0435\u0439\u0444\u0430, \u0435\u0441\u043b\u0438 \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440 \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443. \u041d\u0430 \u0444\u043e\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u043f\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u043e\u0439\u043a\u0430\u0445 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b. \u0412 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0433\u0440\u0435\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u0448\u0438\u043b\u0434 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.OpenPLC: \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0432 DIY\u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043c OpenPLC, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 C++ \u0438\u043b\u0438 Python? \u041e\u0442\u0432\u0435\u0442 \u0432 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e IEC 61131-3. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043c\u043e\u0442\u043e\u0440\u0430 \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u0438\u043b\u0438 \u043e\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u0432\u0438\u043a\u0430, \u0432 OpenPLC \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0445 \u0441\u0445\u0435\u043c (LD) \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 (FBD) \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u044b. \u041c\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0441 OpenPLC v4. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043a\u0430\u043a \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (I\/O \u0443\u0437\u0435\u043b), \u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u044e\u0442 \u043d\u0430 Node-red. \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c Node-RED \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 Modbus TCP. \u0421\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 HMI, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 MCU, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 OpenPLC. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 &#8212; \u044d\u0442\u043e Raspberry pi pico w. \u0412\u044b\u0431\u043e\u0440 OpenPLC v4 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c\u0438:Runtime \u0438 OpenPLC Editor \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0441 MIT License.\u041f\u0440\u043e\u0435\u043a\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435OpenPLC editor \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PLC \u043f\u043e IEC 61131-3\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432: Arduino, Raspberry pi, ESP32 \u0438 \u0442.\u0434.\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0441\u0432\u044f\u0437\u044c \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u043e Modbus.\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 OpenPLC v4 Editor \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 https:\/\/www.youtube.com\/@openplc. \u0415\u0441\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 OpenPLC v3, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0434\u0435\u0441\u044c. \u041a\u0430\u043a \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, v4 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438, \u0430 \u0434\u043b\u044f v3 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0432\u0435\u0434\u0435\u0442\u0441\u044f.\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0439: \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e (\u043f\u043e\u043a\u0430) \u043d\u0435 Siemens \u0438 \u043d\u0435 Mitsubishi\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0441\u0442\u043d\u044b\u043c\u0438: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 Raspberry Pi Pico \u0438 OpenPLC \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u043d\u043e \u0434\u043e \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0434\u0430\u043b\u0435\u043a\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435, \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435\u0441\u044c \u043a \u0440\u044f\u0434\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u2014 \u044d\u0442\u043e \u043d\u0435 PLC\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430 $5 \u2014 \u044d\u0442\u043e \u0447\u0443\u0434\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438, \u043d\u043e \u0432 \u043d\u0435\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0442 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb:\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c (\u042d\u041c\u0421): \u0413\u043e\u043b\u0430\u044f \u043f\u043b\u0430\u0442\u0430 Pico \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u044c \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0436\u0435 \u0449\u0435\u043b\u0447\u043a\u0430 \u043c\u043e\u0449\u043d\u043e\u0433\u043e \u043f\u0443\u0441\u043a\u0430\u0442\u0435\u043b\u044f \u0440\u044f\u0434\u043e\u043c. \u0427\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0451 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439, \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043e\u0433\u043e\u0440\u043e\u0434 \u0438\u0437 \u0433\u0430\u043b\u044c\u0432\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0434\u043e\u0432, \u0441\u0443\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043f\u0438\u0442\u0430\u043d\u0438\u044f.\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: \u0412 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u041f\u041b\u041a \u0435\u0441\u0442\u044c \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430. \u0412 \u043d\u0430\u0448\u0435\u0439 \u0441\u0432\u044f\u0437\u043a\u0435 \u00abPico + OpenPLC\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0431\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0432 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.\u0420\u0430\u0437\u044a\u0435\u043c\u044b \u0438 \u043c\u043e\u043d\u0442\u0430\u0436: Micro-USB \u0438 \u0433\u0440\u0435\u0431\u0435\u043d\u043a\u0438 2.54 \u043c\u043c \u2014 \u044d\u0442\u043e \u0432\u0440\u0430\u0433\u0438 \u0432\u0438\u0431\u0440\u0430\u0446\u0438\u0438. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0448\u043a\u0430\u0444\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430 \u0432\u0438\u043d\u0442\u043e\u0432\u044b\u0445 \u043a\u043b\u0435\u043c\u043c\u0430\u0445 \u0438 DIN-\u0440\u0435\u0439\u043a\u0435.OpenPLC v4 vs CODESYS\/TIA Portal \u0438 \u0442.\u043f.OpenPLC \u2014 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430, \u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u0433\u0438\u0433\u0430\u043d\u0442\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 CODESYS \u043f\u043e\u043a\u0430 \u0440\u0430\u043d\u043e.\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430: \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432 CODESYS \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Modbus \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043e\u0440, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0451 \u0434\u043e \u0431\u0438\u0442\u0430, \u0442\u043e \u0432 OpenPLC v4 \u0432\u044b \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0432  \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d.\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 Modbus: \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435, \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 Modbus RTU Slave \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043f\u0440\u0438\u0437\u043d\u043e\u0439, \u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 (Holding Registers vs Coils) \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u00ab\u0434\u043e\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044f\u00bb \u0438\u043b\u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043a\u043e\u043f\u0430\u043d\u0438\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430.Modbus &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e Modbus \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 Modbus RTU Basics. \u0418\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e OpenPLC on Raspberry Pi with Modbus \u0438\u043b\u0438 \u043b\u0435\u043a\u0446\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Modbus RTU, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e Modbus RTU.\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 Modbus: RTU &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435TCP &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e Ethernet \u0438\u043b\u0438 WI-FI\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Raspberry pi pico w \u043f\u043e \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435 Modbus RTU \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Modbus-\u043c\u043e\u0434\u0443\u043b\u044f MAX485 \u043a \u0448\u0438\u043b\u0434\u0443 RS485 CAN HAT. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0438\u0437 \u0444\u043e\u0440\u0443\u043c\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenPLC \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e Modbus. \u0412 \u043d\u0430\u0448\u0435\u043c \u0434\u0435\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Modbus TCP \u0434\u043b\u044f \u043e\u043d\u0430\u0439\u043d-\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438.Modbus \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u044c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u0438\u043d \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0443\u0437\u0435\u043b Master \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0434\u043e\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Slave. Master \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a Slave. \u0417\u0430\u043f\u0440\u043e\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c&#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-476677","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/476677","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=476677"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/476677\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=476677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=476677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=476677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}