{"id":275468,"date":"2016-03-04T08:35:02","date_gmt":"2016-03-04T05:35:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=275468"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=275468","title":{"rendered":"\u041c\u043e\u0439 \u00ab\u0423\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u00bb \u043d\u0430 \u041f\u041b\u041a \u0438 \u0441 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c. \u0427\u0430\u0441\u0442\u044c 2. \u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441"},"content":{"rendered":"<br \/>\n<h4><b>\u00ab\u041f\u0440\u0435\u043b\u044e\u0434\u0438\u044f\u00bb<\/b><\/h4>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/35c\/c9f\/772\/35cc9f77256d49bf8cc4480e6cdef7f7.jpg\"\/><br \/>   \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043c\u043e\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 (HMI, SCADA \u043d\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u0442\u0435).<br \/>   \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b SCADA \u2013\u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u043b\u0438 \u043c\u043e\u0438\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c:<br \/>   \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435;<br \/>   \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b<br \/>   \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043e\u0442 \u041f\u041b\u041a \u043f\u043e OPC \u2014 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.<br \/>   \u0418\u0442\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b SCADA (\u0441 \u043a\u0440\u044d\u043a\u043e\u043c \u0438 \u0431\u0435\u0437) \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043a\u043e\u0440\u044f\u0432\u044b\u0435 \u0438\u043b\u0438 \u0434\u043e\u0440\u043e\u0433\u0438\u0435. \u0420\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0434\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c \u0438 \u043f\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0441\u0432\u043e\u0439 \u043a\u043e\u0441\u0442\u044b\u043b\u044c \u043f\u043b\u044e\u0441 framework\u00bb. \u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u0440\u044b\u043b \u0433\u0443\u0433\u043b \u2014 Node ModBus-\u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0441\u0430\u043c\u043e\u043f\u0430\u043b\u044c\u043d\u044b\u0435 PHP \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u0442. \u0434. \u0418 \u0438\u0437 \u0447\u0435\u0433\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u044f \u0432\u044b\u0431\u0440\u0430\u043b CSWorks. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432\u0440\u043e\u0434\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 + HTML5. \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u00ab\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e 999 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, 1 \u0441\u0435\u0441\u0441\u0438\u044f\u00bb \u0438 \u044d\u0442\u043e \u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0440\u043e\u0438\u043b\u043e. \u0418 \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 CSWorks.<\/p>\n<p>  <i>\u041d\u0438\u0436\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 CSWorks.\u041d\u0430\u0432\u0435\u0440\u043d\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c \u043f\u043e \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0438, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u044d\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 (\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0435) \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0447\u0435\u0440\u0435\u0437 web \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441; <\/i><br \/>   <a name=\"habracut\"><\/a><br \/>  \u0412\u0441\u0435 \u0441\u0432\u043e\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438:<br \/>  \u041f\u041a: <i>Win 10, OPC Codesys v2, IIS 10<\/i><br \/>  \u041f\u041b\u041a: <i>ABB AC500 PM554-Ethernet <\/i><\/p>\n<h4><b>\u00ab\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u00bb<\/b><\/h4>\n<h5>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 CSWorks:<\/h5>\n<p>   \u2014 \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b (IIS \u0438 ASP) \u0432 \u00ab\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00bb,   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0441\u043c. \u0440\u0438\u0441.<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/228\/eb2\/355\/228eb23556277683e9bea17a03d14b52.png\" alt=\"image\"\/>  <\/div>\n<\/div>\n<p>   \u2014 \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0441\u044f \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 IIS \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 IIS \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 ASP.NET  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0441\u043c. \u0440\u0438\u0441.<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a40\/60c\/069\/a4060c0690eb763e1aab8efc131591e8.gif\" alt=\"image\"\/>  <\/div>\n<\/div>\n<p>   \u2014 \u0414\u0435\u043b\u0430\u0435\u043c \u0432 DefaultAppPool \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e ASP.NET v4.0 Classic<br \/>   \u2014 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 64 \u0431\u0438\u0442\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u043e\u0442 \u0442\u0430\u043a   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0441\u043c. \u0440\u0438\u0441.<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a36\/31f\/d0a\/a3631fd0aeb94edd2a651cdc3eb6ffb3.png\" alt=\"image\"\/>  <\/div>\n<\/div>\n<h5>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b CSWorks (\u0434\u0430\u043b\u0435\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0426\u0421)<\/h5>\n<p>   \u2014 \u0417\u0430\u0445\u043e\u0434\u0438\u043c <a href=\"http:\/\/www.controlsystemworks.com\/DownloadDescription.aspx\">\u043d\u0430 \u0441\u0430\u0439\u0442 CSWorks <\/a><br \/>   \u2014 \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b X86,X64, \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c. \u0412\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n<h5>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b<\/h5>\n<p>   \u2014 \u041d\u0430\u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c DCOM \u0434\u043b\u044f OPC \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Codesys v2 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (\u0433\u0443\u0433\u043b \u0432 \u043f\u043e\u043c\u043e\u0449\u044c \u0432\u0430\u043c). \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0432\u043d\u0435.<br \/>   \u2014 CSWorks \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u043b\u0443\u0436\u0431\u0430\u0445 \u0432\u0438\u043d\u0434\u044b. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e LiveData, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b CSWorks \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0441\u043c. \u0440\u0438\u0441.<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6f7\/862\/365\/6f78623656004124a6adecf87dda5534.png\" alt=\"image\"\/>  <\/div>\n<\/div>\n<h5> \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e CSWorks<\/h5>\n<p>   \u2014 \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 C:\\Program Files\\CSWorks\\Framework\\Server (\u043f\u0443\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0435\u043d \u0443 \u042586 \u0438 \u042564)<br \/>   \u2014 \u0412\u0438\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c CSWorks.Server.LiveDataService.exe.config, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c.<br \/>   \u2014 \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443   <\/p>\n<pre><code class=\"javascript\">&lt;opcLiveDataSources type=&quot;CSWorks.Server.DataSource.Opc.OpcLiveDataSource, CSWorks.Server.OpcProvider&quot;&gt; <\/code><\/pre>\n<p>  \u0418 \u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0426\u0421-\u0430 \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u2014 \u043c\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440  <\/p>\n<pre><code class=\"javascript\">&lt;opcLiveDataSources type=&quot;CSWorks.Server.DataSource.Opc.OpcLiveDataSource, CSWorks.Server.OpcProvider&quot;&gt;       &lt;opcLiveDataSource name=&quot;PLC&quot; hostName=&quot;localhost&quot; progId=&quot;CoDeSys.OPC.02&quot; subscriptionUpdateRate=&quot;1000&quot; resetTimeout=&quot;5&quot;&gt;         &lt;templates&gt;           &lt;template name=&quot;AnalogAI&quot; type=&quot;Double&quot;  readPath=&quot;PLC:($tagName)&quot; canWrite=&quot;true&quot; \/&gt; \t  &lt;template name=&quot;AnalogINT&quot; type=&quot;Int16&quot;  readPath=&quot;PLC:($tagName)&quot; canWrite=&quot;true&quot; \/&gt;           &lt;template name=&quot;Bool&quot; type=&quot;Boolean&quot; readPath=&quot;PLC:($tagName)&quot; canWrite=&quot;true&quot; \/&gt;  \t  &lt;template name=&quot;String&quot; type=&quot;String&quot; readPath=&quot;PLC:($tagName)&quot; canWrite=&quot;true&quot; \/&gt;                &lt;\/templates&gt;       &lt;\/opcLiveDataSource&gt;     &lt;\/opcLiveDataSources&gt; <\/code><\/pre>\n<p>  \u0427\u0442\u043e \u0442\u0443\u0442 \u043d\u0430\u0434\u043e \u043c\u0435\u043d\u044f\u0442\u044c <br \/>   \u2014 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443  <\/p>\n<pre><code class=\"javascript\">&lt;opcLiveDataSource name=&quot;\u041d\u0410\u0417\u042b\u0412\u0410\u0415\u041c \u0421\u041e\u0415\u0414. \u041a\u0410\u041a \u0412\u042b \u0425\u041e\u0422\u0418\u0422\u0415&quot; hostName=&quot;\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 IP \u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442&quot; progId=&quot;\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 OPC \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445&quot; subscriptionUpdateRate=&quot;1000&quot; resetTimeout=&quot;5&quot;&gt;   <\/code><\/pre>\n<p>   \u2014 \u0421\u0442\u0440\u043e\u0447\u043a\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0438\u0445 \u043a OPC \u0441\u0435\u0440\u0432\u0435\u0440\u0443  <\/p>\n<pre><code class=\"javascript\">&lt;template name=&quot;\u041d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u043c&quot; type=&quot;\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0426\u0421&quot;  readPath=&quot;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432 OPC&quot; canWrite=&quot;\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442&quot; \/&gt; <\/code><\/pre>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c, \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0426\u0421-\u0430 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0442\u043e \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0438\u043c\u044f \u043e\u043d\u043e \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u0442\u0430\u043a\u0438\u043c\u00bb. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 int16 \u0438 \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432 javascript <i>AnalogINT<\/i>. \u0421\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<br \/>   \u2014 \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0438\u0434\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 C:\\Program Files\\CSWorks\\Web\\WebServices\\Rest \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b web.config. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0426\u0421-\u0443, \u043a \u043a\u0430\u043a\u043e\u043c\u0443 OPC \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f:  <\/p>\n<pre><code class=\"javascript\">liveDataPartition name=&quot;partition1&quot; primaryLiveDataServer=&quot;liveDataServer_1_primary&quot; secondaryLiveDataServer=&quot;&quot;&gt;         &lt;dataSources&gt;           &lt;dataSource name=&quot;PLC&quot;\/&gt;         &lt;\/dataSources&gt; <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u0432 dataSource name=\u00abPLC\u00bb \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c PLC \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 opcLiveDataSource name=\u00abPLC\u00bb.<br \/>   \u2014 \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0432 C:\\Program Files\\CSWorks\\Web\\WebServices\\Soap\\LiveData  <\/p>\n<pre><code class=\"javascript\"> &lt;liveDataTopology&gt;     &lt;liveDataPartitions&gt;       &lt;liveDataPartition name=&quot;partition1&quot; primaryLiveDataServer=&quot;liveDataServer_1_primary&quot; secondaryLiveDataServer=&quot;&quot;&gt;         &lt;dataSources&gt;           &lt;dataSource name=&quot;PLC&quot;\/&gt;         &lt;\/dataSources&gt;       &lt;\/liveDataPartition&gt;     &lt;\/liveDataPartitions&gt; <\/code><\/pre>\n<p>  \u042d\u0442\u0430\u043f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438, \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u041e\u0421\u044c. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u041e\u0421\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u043b\u0443\u0436\u0431\u0430 \u0426\u0421 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c \u0438 \u043e\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 OPC \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0434\u0435\u0442. <\/p>\n<h5> \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0432\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b:<\/h5>\n<p>   \u2014 \u041f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0438\u0437 C:\\Program Files\\CSWorks\\Framework\\Client\\Html5 \u0441\u043a\u0440\u0438\u043f\u0442 csworks.core.js \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 IIS. C:\\inetpub\\wwwroot\\JS (\u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 JS \u0438 \u0442\u0443\u0434\u0430 \u0438\u0445 \u0432\u0441\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c)<br \/>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0426\u0421 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b (\u0432\u0435\u0440\u0441\u0438\u0438 \u043b\u044e\u0431\u044b\u0435):<br \/>   \u0430) jquery-2.1.1.js<br \/>   \u0431) knockout-2.3.0.min.js<br \/>   \u2014 \u0421\u043e\u0437\u0434\u0430\u0435\u043c HTML \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 (\u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <a href=\"http:\/\/www.sublimetext.com\/\">Subline<\/a>) \u0441 \u0438\u043c\u0435\u043d\u0435\u043c index.html \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c:  <\/p>\n<pre><code class=\"html\">&lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; \t&lt;title&gt;\u041d\u0410\u0428\u0410 \u0421\u0422\u0420\u0410\u041d\u0418\u0426\u0410&lt;\/title&gt;  \t&lt;meta charset=&quot;UTF-8&quot;&gt;   &lt;xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;   &lt;xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot;&gt;    &lt;!\u2014\u041d\u0430\u0447\u0430\u043b\u043e - \u041d\u0438\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 --&gt;   &lt;script type=&quot;text\/javascript&quot; src=&quot; JS\/jquery-2.1.1.js&quot;&gt;&lt;\/script&gt;   &lt;script type=&quot;text\/javascript&quot; src=&quot; JS\/knockout-2.3.0.min.js &quot;&gt;&lt;\/script&gt;   &lt;script type=&quot;text\/javascript&quot; src=&quot;JS\/csworks.core.js&quot;&gt;&lt;\/script&gt;   &lt;!\u2014\u041a\u043e\u043d\u0435\u0446 - \u041d\u0438\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 --&gt;    &lt;!\u2014 \u041d\u0438\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0426\u0421 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 --&gt;   &lt;script type=&quot;text\/javascript&quot; src=&quot;JS\/PLC.js&quot;&gt;&lt;\/script&gt; &lt;\/head&gt; &lt;body&gt; &lt;!\u2014 \u0422\u0443\u0442 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0441\u044e\u0434\u0430 \u043f\u043e\u0437\u0436\u0435--&gt; &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>   \u2014 \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0412 \u0441\u0430\u0431\u043b\u0430\u0439\u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c PLC.js (\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0435\u0433\u043e).\u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 4 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438.  <\/p>\n<pre><code class=\"javascript\"> function dataManagerUpdateHandler(responseItems) {    }     function dataManagerErrorHandler(data, httpStatus) {    }       function MyViewModel() { \/\/ \u043d\u0430\u0447\u0430\u043b\u043e - \u0412\u043e\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435  this.AI_T_ULICA = new $.csworks_core.FloatDataItem(&quot;fddc58f7-a215-406c-8909-4bfe4728a9fc&quot;, &quot;PLC&quot;, &quot;AnalogAI&quot;,  &quot;tagName=.OUT_T_ULICASUN;&quot;, 1); this.setpoint_T_SPALNYA = new $.csworks_core.IntDataItem(&quot;57e71dd1-169b-4ece-917b-e5906c674522&quot;, &quot;PLC&quot;, &quot;AnalogINT&quot;,  &quot;tagName=.setpoint_T_SPALNAY;&quot;, 0); this.KM8_POL_TUALET = new $.csworks_core.BoolDataItem(&quot;a8cf572e-843d-400a-83a5-7171062ed96b&quot;, &quot;PLC&quot;, &quot;Bool&quot;,  &quot;tagName=.KM8_POL_TUALET;&quot;); this.door_event1= new $.csworks_core.StringDataItem(&quot;2566ed88-c5af-40e1-ab6c-429c7402b5cf&quot;, &quot;PLC&quot;, &quot;String&quot;,  &quot;tagName=.door_event1;&quot;); \/\/ \u043a\u043e\u043d\u0435\u0446 - \u0412\u043e\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435  }        var g_vm = new MyViewModel(); var g_dm = new $.csworks_core.LiveDataManager(&quot;8a93ccaa-1a4b-482a-92cc-f1ed590fb033&quot;, 250, 5000, &quot;..\/CSWorksRest\/LiveData\/&quot;, dataManagerUpdateHandler, dataManagerErrorHandler); \/\/ \u043d\u0430\u0447\u0430\u043b\u043e - \u0412\u043e\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043d\u043e\u043a\u0430\u0443\u0442\u0430 g_dm.addDataItem(g_vm.AI_T_ULICA); g_dm.addDataItem(g_vm. setpoint_T_SPALNYA); g_dm.addDataItem(g_vm. KM8_POL_TUALET); g_dm.addDataItem(g_vm. door_event1); \/\/ \u043a\u043e\u043d\u0435\u0446 - \u0412\u043e\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043d\u043e\u043a\u0430\u0443\u0442\u0430    ko.applyBindings(g_vm); g_dm.start(); <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0443\u0442 \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0445\u0443 \u0438\u0437 \u0445\u0443 \u0442\u0443\u0442:<\/p>\n<p>   \u2014 \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435  <\/p>\n<pre><code class=\"javascript\">this.\u201d1\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431 \u0441\u0435\u0440\u0432\u0435\u0440\u0435\u00bb = new $.csworks_core.\u201d\u0422\u0443\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445\u201dDataItem(&quot;\u201d \u0437\u0434\u0435\u0441\u044c \u0437\u0430\u0431\u0438\u0432\u0430\u0435\u043c GUID \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0437 \u0433\u0443\u0433\u043b\u0430\u201d&quot;, &quot;\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430&quot;, &quot;\u041e\u043f\u044f\u0442\u044c \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438&quot;,  &quot;tagName=\u201d\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0437 OPC \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0442\u043e\u0447\u043a\u0438\u201d;&quot;, \u201c\u0422\u0443\u0442 \u043a\u043e\u043b-\u0432\u043e \u0446\u0438\u0444\u0440 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0447\u043a\u0438 0,1101\u201d); <\/code><\/pre>\n<p>  GUID \u2014 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0432\u043e\u0439, \u043d\u043e GUID \u043a\u043e\u0434 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u043c. <br \/>  -\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0438\u0436\u0435 \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043d\u043e\u043a\u0430\u0443\u0442\u0430   <\/p>\n<pre><code class=\"javascript\">g_dm.addDataItem(g_vm.\u201d 1\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u201d); <\/code><\/pre>\n<p>  -\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0448\u0430\u0431\u043b\u043e\u043d\u0443 index.html \u0438 \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 HTML \u0438 javascript.<\/p>\n<h5><b>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 web \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/b><\/h5>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043b\u0430\u043c\u043f\u044b <br \/>  1) \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SVG \u0433\u0440\u0430\u0444\u0438\u043a\u0438 (\u0433\u0443\u0433\u043b \u0432\u0430\u043c \u0432 \u043f\u043e\u043c\u043e\u0449\u044c \u0447\u0442\u043e \u044d\u0442\u043e) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a<br \/>  \u0412 \u0431\u043e\u0434\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c   <\/p>\n<pre><code class=\"html\">   &lt;svg&gt; &lt;rect y=&quot;100&quot; x=&quot;100&quot;  data-bind=&quot;attr: { fill:( KM8_POL_TUALET.value() &gt; '0') ? '#dee2e2' : '#33FF99'}&quot; height=&quot;200px&quot; width=&quot;200px&quot;  &gt;&lt;\/rect&gt;    &lt;\/svg&gt; <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f jquery \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u2014 <i>fill<\/i> \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438. \u0418 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u2014 \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 0, \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: \u0426\u0432\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c<br \/>  2) \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439   <\/p>\n<pre><code class=\"html\">&lt;img width=&quot;100&quot; height=&quot;100&quot;  data-bind=&quot;attr: { src:( KM8_POL_TUALET.value() &gt; '0') ? 'img\/pol_ico_0.png' :'img\/pol_ico_1.png'}&quot; style='top: 495px; left: 659px; opacity: 0.9' &gt; <\/code><\/pre>\n<p>  3) \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435  <\/p>\n<pre><code class=\"html\">&lt;a href=&quot;#&quot;&gt;\u0422\u0435\u043c\u043f-\u0440\u0430 \u043d\u0430 \u0443\u043b\u0438\u0446\u0435: &lt;span data-bind=&quot;text:  AI_T_ULICA.value()&quot;&gt;&lt;\/span&gt; C&deg; &lt;\/a&gt; &lt;br&gt; <\/code><\/pre>\n<p>  4) \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e  <\/p>\n<pre><code class=\"html\">\u0414\u0432\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c:&lt;span data-bind=&quot;text: door_event1.value&quot;  y=&quot;20&quot; x=&quot;25&quot;&gt;  &lt;\/span&gt; <\/code><\/pre>\n<p>  5) \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043d\u043e\u043f\u043a\u0438 \u0432 javascript:   <\/p>\n<pre><code class=\"javascript\">   $(&quot;#toggle_bms_zal_lustra&quot;).click(function () {            g_vm.bms_zal_lustra.writeValue(!g_vm.bms_zal_lustra.value());       setTimeout(&quot;g_vm.bms_zal_lustra.writeValue(0);&quot;, 500);           })   <\/code><\/pre>\n<pre><code class=\"html\">&lt;div id=&quot;toggle_bms_zal_lustra&quot; style=&quot;padding:11px 32px;  border:solid 3px #004F72; border-radius:4px; color:#E5FFFF;  &quot;&gt;\u041a\u041d\u041e\u041f\u041a\u0410 &lt;\/div&gt; <\/code><\/pre>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438:<br \/>   \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438\u0437 HTML, \u0442\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044c \u043a \u043d\u0435\u0439 \u043f\u0440\u044f\u043c\u043e <i>door_event1<\/i><br \/>   \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0437 JavaScript, \u0442\u043e <i>g_vm.door_event1<\/i><br \/>   \u2014 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0438\u0448\u0435\u043c <i>.writeValue(\u0417\u041d\u0410\u0427\u0415\u041d\u0418\u0415)<\/i>, \u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0442\u043e <i>value()<\/i>.<\/p>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438:<br \/>   \u2014 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u0435\u0431\u0430\u0433\u0435\u0440\u044b \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Firebug \u0434\u043b\u044f Firefox. <br \/>   \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0446\u0441 \u0432 \u0434\u0435\u0431\u0430\u0433\u0435\u0440\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4eb\/fb5\/58e\/4ebfb558e7414e9b940d0e2ada8ea716.png\" alt=\"image\"\/><\/p>\n<h5><b>\u0418\u0442\u043e\u0433\u043e<\/b><\/h5>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0438\u043c\u0432\u043e\u0440\u043a \u0443 \u043c\u0435\u043d\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 1,5 \u0433\u043e\u0434\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c Win 7, 8, 10 \u0438 \u0432\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0439 \u043d\u0435\u0442 (\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043d\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f)). \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u043b\u044f Silverlight, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0430\u0440\u0445\u0438\u0432\u0430, \u0430\u043b\u0430\u0440\u043c\u044b, \u043d\u043e \u043c\u043d\u0435 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u043e\u0441\u044c.<br \/>  \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u044f \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0440\u0438\u0432\u043e\u0440\u043a\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u0432\u043e\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0443\u043f\u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f SCADA \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435 (\u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u0446\u0435\u043d\u0442\u0440). \u0418\u0442\u043e\u0433 \u0432\u0441\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 (\u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f) \u0434\u043b\u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0430.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0432\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0422\u0426.<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/712\/bd5\/1ee\/712bd51ee8cf4a1cbeab9344afffced1.bmp\"\/>  <\/div>\n<\/div>\n<p>                 <\/p>\n<div class=\"clear\"><\/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:\/\/habrahabr.ru\/post\/278111\/\"> https:\/\/habrahabr.ru\/post\/278111\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<br \/>\n<h4><b>\u00ab\u041f\u0440\u0435\u043b\u044e\u0434\u0438\u044f\u00bb<\/b><\/h4>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/35c\/c9f\/772\/35cc9f77256d49bf8cc4480e6cdef7f7.jpg\"\/><br \/>   \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043c\u043e\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 (HMI, SCADA \u043d\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u0442\u0435).<br \/>   \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b SCADA \u2013\u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u043b\u0438 \u043c\u043e\u0438\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c:<br \/>   \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435;<br \/>   \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b<br \/>   \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043e\u0442 \u041f\u041b\u041a \u043f\u043e OPC \u2014 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.<br \/>   \u0418\u0442\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b SCADA (\u0441 \u043a\u0440\u044d\u043a\u043e\u043c \u0438 \u0431\u0435\u0437) \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043a\u043e\u0440\u044f\u0432\u044b\u0435 \u0438\u043b\u0438 \u0434\u043e\u0440\u043e\u0433\u0438\u0435. \u0420\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0434\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c \u0438 \u043f\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0441\u0432\u043e\u0439 \u043a\u043e\u0441\u0442\u044b\u043b\u044c \u043f\u043b\u044e\u0441 framework\u00bb. \u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u0440\u044b\u043b \u0433\u0443\u0433\u043b \u2014 Node ModBus-\u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0441\u0430\u043c\u043e\u043f\u0430\u043b\u044c\u043d\u044b\u0435 PHP \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u0442. \u0434. \u0418 \u0438\u0437 \u0447\u0435\u0433\u043e \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u044f \u0432\u044b\u0431\u0440\u0430\u043b CSWorks. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432\u0440\u043e\u0434\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 + HTML5. \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u00ab\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e 999 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, 1 \u0441\u0435\u0441\u0441\u0438\u044f\u00bb \u0438 \u044d\u0442\u043e \u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0440\u043e\u0438\u043b\u043e. \u0418 \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 CSWorks.<\/p>\n<p>  <i>\u041d\u0438\u0436\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 CSWorks.\u041d\u0430\u0432\u0435\u0440\u043d\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c \u043f\u043e \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0438, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u044d\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 (\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0435) \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0447\u0435\u0440\u0435\u0437 web \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441; <\/i>   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-275468","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275468","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=275468"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275468\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}