<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html class="client-nojs" dir="ltr" lang="en">
<head>
<meta charset="UTF-8" />
<title>Модули/Siemens - OpenSCADAWiki</title>
<meta content="MediaWiki 1.26.4" name="generator" />
<link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" />
<link href="../../en/files/doc.css" rel="stylesheet" /></head>
<body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header">
			<div class="mw-indicators">
</div>
			<h1 id="firstHeading" lang="ru">Модули/Siemens</h1>
		</div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="ru"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&amp;group=page-Modules%2FSiemens&amp;action=page&amp;filter=&amp;language=ru" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/Siemens" title="Modules/Siemens">Modules/Siemens</a> and the translation is 98% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/Siemens.html" title="Modules/Siemens (100% translated)">English</a>&nbsp;• ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">mRussian</span>&nbsp;• ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../uk/Modules/Siemens.html" title="Модулі/Siemens (100% translated)">Українська</a></div></div>
<table class="wikitable">

<tr>
<th> Модуль </th>
<th> Имя </th>
<th> Версия </th>
<th> Лицензия </th>
<th> Источник </th>
<th> Языки </th>
<th> Платформы </th>
<th> Тип </th>
<th> Автор
</th></tr>

<tr>
<td> <a href="../Modules/Siemens.html" title="Special:MyLanguage/Modules/Siemens">Siemens</a> </td>
<td> Сбор данных Siemens и Beckhoff
</td>
<td> 4.5 </td>
<td> GPL2 </td>
<td> daq_Siemens.so </td>
<td> en,uk,ru,de </td>
<td> x86,x86_64,ARM
</td>
<td> DAQ </td>
<td> Роман Савоченко
</td></tr>
<tr>
<th colspan="9"> Описание
</th></tr>
<tr>
<td colspan="9"> Обеспечивает поддержку источников данных ПЛК Siemens с помощью карт HILSCHER CIF (протоколом MPI) и библиотеки LibnoDave (или собственной реализации) для остального. Также поддерживаются источники данных фирмы Beckhoff для протокола TwinCAT ADS/AMS, поскольку он также работает с блоками данных.
<ul><li> <b>Спонсировано, поддержку Простого типа, определение областей данных и другие расширения на 1.6 <span title="человеко-дней, 1ЧД — 10 часов">ЧД<sup style="color: blue">[!]</sup></span>:</b> INSERTEC LTDA</li>
<li> <b><a href="../../en/To_do.html" title="Special:MyLanguage/Works/To do">Задачи (To Do)</a>:</b></li></ul>
<p><br />
</p>
</td></tr></table>
<p>Первоочередной целью создания модуля было обеспечение поддержки промышленных контроллеров фирмы Siemens серии S7 (S7-200,300,400,1200). Исторически сложилось, что доступ к контроллерам указанной фирмы в сети ProfiBus производился только посредством собственных коммуникационных процессоров (CP5412, CP5613 и т.д.) и собственного протокола S7. Указанные коммуникационные процессоры и API к протоколу S7 достаточно дорогостоящие, кроме того, драйвера к коммуникационным процессорам и S7 API закрыты, а также доступны только для платформы Intel + MS Windows (встречалась некоторая информация о возможности купить для Linux).
</p><p>В качестве альтернативы коммуникационным процессорам от фирмы Siemens, которые позволяют полноценно работать с контроллерами фирмы Siemens, выступает спектр коммуникационных продуктов фирмы <a class="external text" href="http://hilscher.com" rel="nofollow noreferrer noopener" target="_blank">Hilscher</a> в лице коммуникационных процессоров CIF серии ProfiBus (PB) и библиотека <a class="external text" href="http://libnodave.sourceforge.net" rel="nofollow noreferrer noopener" target="_blank">LibnoDave</a>.
</p><p>Особенностью продуктов Hilscher является полностью открытая спецификация протокола обмена с коммуникационным процессором, унифицированный драйвер для всех плат CIF, наличие драйвера для многих распространённых операционных систем (ОС) и открытость драйвера для ОС Linux (GPL).
</p><p>В основу данного модуля положен драйвер версии 2.621 фирмы Hilsher, любезно предоставленный фирмой Hilsher в лице <a class="external text" href="mailto:DTsaava@hilscher.com" rel="nofollow noreferrer noopener" target="_blank">Devid Tsaava</a> для ядер серии 2.6 ОС Linux. Все необходимые для сборки файлы включены в модуль и он не требует удовлетворения специальных зависимостей. Драйвер версии 2.621 для плат CIF можно загрузить <a class="external" href="http://oscada.org/wiki/File:Siemens_cif2621.tgz" title="File:Siemens cif2621.tgz">тут</a>.
</p><p>Платы фирмы Hilsher семейства CIF и унифицированный драйвер поддерживают широкий спектр оборудования. Заложить поддержку всех этих возможностей в данном модуле, не имея всего этого оборудования на руках, не представляется возможным. Поэтому поддержка того или иного оборудования будет добавляться по мере надобности и наличия оборудования. По состоянию на версию 2.0.0 модулем предоставляется поддержка источников данных в сети ProfiBus или MPI, посредством протокола MPI, на скоростях сети от 9600Бод до 12МБод. В частности поддерживаются и выполнена проверка на контроллерах фирмы Siemens семейства S7 (S7-200,300,400).
</p><p>Библиотека LibnoDave является реализацией, путём реверсинжениринга, протоколов MPI, S7, ISO-TSAP и других, которые используются при взаимодействии с контроллерами фирмы Siemens. Библиотекой поддерживаются многие MPI и USB адаптеры, а также ProfiNet. Коммуникационные процессоры фирмы Siemens, на платформах отличных от MS Windows, библиотекой не поддерживаются. Посредством библиотеки LibnoDave, на данном этапе, модулем обеспечена поддержка протокола ISO-TSAP(ProfiNet). Библиотека LibnoDave полностью включена в данный модуль и не требует разрешения зависимостей как при сборке, так и при исполнении.
</p><p><a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> В коде библиотеки LibnoDave присутствуют сложно-уловимые ошибки, которые в основном воспроизводятся под большой нагрузкой и в момент подключений, что приводит к порче памяти процесса и <a class="external" href="http://oscada.org/wiki/File:Siemens_crash_20160127_0911.crash.gz" title="File:Siemens crash 20160127 0911.crash.gz">падениям</a> в непредсказуемых местах. В связи с этим, с версии 2 этого модуля, начат процесс переписывания нужных функций и код связи ISO-TCP уже готов к использованию.
</p><p>Также, модулем реализуются функции горизонтального резервирования, а именно — совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров, модулем осуществляется синхронизация значений вычислительных шаблонов, с целью безударного подхвата алгоритмов.
</p>
<div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.D0.9A.D0.BE.D0.BC.D0.BC.D1.83.D0.BD.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.BB.D0.B5.D1.80.D1.8B_CIF"><span class="tocnumber">1</span> <span class="toctext">Коммуникационные контроллеры CIF</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.BB.D0.B5.D1.80.D0.B0"><span class="tocnumber">2</span> <span class="toctext">Объект контроллера</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#.D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B"><span class="tocnumber">3</span> <span class="toctext"><span>Параметры</span></span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="#.D0.9B.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B9_.28Prm.29"><span class="tocnumber">3.1</span> <span class="toctext">Логический (Prm)</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#.D0.9F.D1.80.D0.BE.D1.81.D1.82.D0.BE.D0.B9_.28PrmS.29"><span class="tocnumber">3.2</span> <span class="toctext">Простой (PrmS)</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-6"><a href="#.D0.90.D1.81.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.BD.D1.8B.D0.B9_.D1.80.D0.B5.D0.B6.D0.B8.D0.BC_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8"><span class="tocnumber">4</span> <span class="toctext">Асинхронный режим записи</span></a>
<ul>
<li class="toclevel-2 tocsection-7"><a href="#API_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F"><span class="tocnumber">4.1</span> <span class="toctext"><span>API пользовательского программирования</span></span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-8"><a href="#.D0.9F.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5_A._.D0.9E.D0.B1.D0.BB.D0.B0.D1.81.D1.82.D0.B8_.D0.94.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B9_ISO_TCP_.28.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B0.D1.8F_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0_LibnoDave.29"><span class="tocnumber">5</span> <span class="toctext"><span>Приложение A. Области Данных подключений ISO_TCP</span> (исходная таблица LibnoDave)</span></a></li>
<li class="toclevel-1 tocsection-9"><a href="#.D0.97.D0.B0.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"><span class="tocnumber">6</span> <span class="toctext"><span>Замечания</span></span></a></li>
<li class="toclevel-1 tocsection-10"><a href="#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="tocnumber">7</span> <span class="toctext">Ссылки</span></a></li>
</ul>
</div>

<h2><span class="mw-headline" id=".D0.9A.D0.BE.D0.BC.D0.BC.D1.83.D0.BD.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.BB.D0.B5.D1.80.D1.8B_CIF"><span class="mw-headline-number">1</span> Коммуникационные контроллеры CIF</span></h2>
<p>Драйвером плат семейства CIF поддерживается возможность установки до 4 CIF плат. С целью контроля за наличием плат в системе и возможности их конфигурации, модуль содержит форму контроля и конфигурации CIF-плат (рис.1).
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:808px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_cif_dev_ru.png"><img class="thumbimage" height="569" src="../files/Siemens_cif_dev_ru.png" width="806" /></a>  <div class="thumbcaption">Рис.1. Вкладка конфигурации CIF-плат.</div></div></div></div>
<p>С помощью этой формы можно проконтролировать наличие коммуникационных процессоров, их конфигурацию, а также настроить параметры сети ProfiBus в виде PB адреса коммуникационного процессора и скорости шины ProfiBus. В другой вкладке модуля (рис.2) можно проконтролировать наличие различных станций в сети ProfiBus.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:711px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_pb_ru.png"><img class="thumbimage" height="513" src="../files/Siemens_pb_ru.png" width="709" /></a>  <div class="thumbcaption">Рис.2. Вкладка мониторинга сети ProfiBus.</div></div></div></div>
<h2><span class="mw-headline" id=".D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82_.D0.BA.D0.BE.D0.BD.D1.82.D1.80.D0.BE.D0.BB.D0.BB.D0.B5.D1.80.D0.B0"><span class="mw-headline-number">2</span> Объект контроллера</span></h2>
<p>Для добавления источника данных создаётся и конфигурируется объект контроллера OpenSCADA. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 3.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:779px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_cntr.png"><img class="thumbimage" height="775" src="../../en/files/Siemens_cntr.png" width="777" /></a>  <div class="thumbcaption">Рис.3. Вкладка конфигурации объекта контроллера.</div></div></div></div>
<p>Using this tab you can set:
</p>
<ul><li> The state of the controller object, as follows: Status, "Enabled", "Running" and the name of the storage containing the configuration.</li></ul>
<dl><dd><a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Manual restart of the enabled controller object causes the force reformation of the acquisition blocks.</dd></dl>
<ul><li> Identifier, name and description of the controller.</li>
<li> The state "Enabled" and "Running", in which the controller object must be translated at boot.</li>
<li> Policy of scheduling and priority of the data acquisition task.</li>
<li> Connection recovery time, in seconds, after lost connection.</li>
<li> Mode of asynchronous writing to the remote controller.</li>
<li> Connection type, supported ones:
<ul><li> <i>CIF_PB</i> — connection to S7 controllers of the firm Siemens via CIF-50PB communication processor or similar;</li>
<li> <i>ISO_TCP</i>, <i>ISO_TCP243</i> — connection to S7 controllers of the firm Siemens via the Ethernet network (TCP243 by CP243);</li>
<li> <i>ADS</i> — TwinCAT ADS/AMS protocol for connecting to controllers of the firm Beckhoff.</li></ul></li>
<li> Remote controller address, for the connections:
<ul><li> <i>CIF_PB</i> — controller address in the ProfiBus network, one digit 0-255;</li>
<li> <i>ISO_TCP</i>, <i>ISO_TCP243</i> — IP-address into the Ethernet network;</li>
<li> <i>ADS</i> — network identifier and port for the target and source stations, in view <b>{Target_AMSNetId}:{Target_AMSPort}|{Source_AMSNetId}:{Source_AMSPort}</b> (for example: "192.168.0.1.1.1:801|82.207.88.73.1.1:801"), where:
<ul><li> <i>AMSNetId</i> — network identifier, writes in view of six digits 0-255, for example: "192.168.0.1.1.1";</li>
<li> <i>AMSPort</i> — port, writes in view of one digit 0-65535.</li></ul></li></ul></li>
<li> CPU slot of the PLC in which the central processor of the controller is placed.</li>
<li> CIF card used for access to the industrial controller through CIF communication processors.</li>
<li> <a href="../Program_manual.html#Transports" title="Special:MyLanguage/Documents/Program manual">OpenSCADA output transport</a> for the protocol ADS (port 48898, 801 for AMS) and ISO_TCP (port 102) for sending requests.</li>
<li> Maximum size of the request block in bytes, useful for controllers with such limits.</li></ul>
<h2><span class="mw-headline" id=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B"><span class="mw-headline-number">3</span> <span id="Parameters" title="#Parameters">Параметры</span></span></h2>
<p>Модуль сбора данных предоставляет два типа параметра: "Логический (Prm)" и "Простой (PrmS)". Дополнительными конфигурационными полями параметров данного модуля являются:
</p>
<ul><li> <i><b>Логический (Prm)</b></i>:
<ul><li> <i>Шаблон параметра</i> — адрес шаблона параметра DAQ.</li></ul></li>
<li> <i><b>Простой (PrmS)</b></i>:
<ul><li> <i>Перечень атрибутов</i> — содержит структурированный список конфигурации атрибутов Siemens.</li></ul></li></ul>
<h4><span class="mw-headline" id=".D0.9B.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B9_.28Prm.29"><span class="mw-headline-number">3.1</span> Логический (Prm)</span></h4>
<p>Учитывая высокую интеллектуальность источников данных, в лице промышленных контроллеров фирмы Siemens S7-200,300,400,1200, объекты типа параметра выполняются на основе <a href="../DAQ.html#LogicLev" title="Special:MyLanguage/Documents/DAQ">шаблонов</a>. Данный подход позволяет не ограничиваться жёстким перечнем типов параметров, что ограничивает и возможности контроллеров, а предоставить возможность пользователю формировать нужные ему типы параметров самостоятельно или использовать библиотеки уже разработанных ранее типов параметров — шаблонов.
</p><p>Дополнительными конфигурационными полями типа параметров (рис.4) является поле выбора шаблона параметра.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:848px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_prm_ru.png"><img class="thumbimage" height="566" src="../files/Siemens_prm_ru.png" width="846" /></a>  <div class="thumbcaption">Рис.4. Вкладка конфигурации параметра.</div></div></div></div>
<p>Для конфигурации шаблона параметра предоставляется соответствующая вкладка, содержимое которой определяется конфигурацией шаблона, т.е формируются соответствующие ссылочные поля и поля установки постоянных.
</p><p>Конечный адрес Siemens-БД записывается в форме "<b>(DB{N}|F).{off}[.[{tp}]{SzBit}]</b>", где:
</p>
<ul><li> <b>DB</b>{<i>N</i>} — десятичный номер Блока Данных, может быть отрицательным для специфических областей данных типов подключения ISO_TCP (смотрите <a href="#DataAreas">Приложение A</a> на предмет областей данных);</li>
<li> <b>F</b> — специфическая область данных Флагов/Маркеров (131) типов подключения ISO_TCP;</li>
<li> <i>off</i> — смещение в Блоке Данных;</li>
<li> <i>tp</i> — тип одним символом из перечня: b-Логический, i-Знаковое целое, u-Беззнаковое целое, r-Вещественное, s-Строка;</li>
<li> <i>SzBit</i> — размер типа для не Логического или бит байта для него: b=[0...7], iu=[1,2(тип.),4,8], r=[4(тип.),8], s=[0(тип.10)...100].</li></ul>
<p>Примеры конечных адресов:
</p>
<ul><li> "DB1.12.2", "DB1.0xC.2", "DB1.12.b2" — Логический в БД 1, смещение 12 и бит 2;</li>
<li> "DB2.24", "DB2.0x18.8" — Целое или Вещественное, полученное из типа ВВ шаблона, в БД 2, смещение 24, размер типовой и 8;</li>
<li> "DB3.36.i4", "DB3.0x24.r8" — прямо определённое Целое и Вещественное в БД 3, смещение 36, размер 4 и 8;</li>
<li> "DB4.48.20", "DB4.0x30.s20" — неявно, из типа ВВ шаблона, и прямо определённая Строка в БД 4, смещение 48 и размер 20;</li>
<li> "F.12.5" — Логическое в области данных Флаги/Маркеры, смещение 12 и бит 5.</li></ul>
<p>Типы ссылок обычно определяются типом параметра в шаблоне (Логический, Целый, Вещественный и Строковый) и определением значения ссылки (для групповых ссылок). Определение групповой ссылки в шаблоне записывается в формате: "<b>{LnkName}|{OffDB}[.{bit}][|[{tp}]{sz}]</b>", где:
</p>
<ul><li> <i>LnkName</i> — имя групповой ссылки. Все ссылки с одинаковым именем группируются и указываются как одна ссылка на блок данных или блок данных с указанным смещением.</li>
<li> <i>OffDB</i> — номер смещения в блоке данных. При указании в конфигурации шаблона только блока данных это смещение будет указанно для параметра. Если-же при конфигурации шаблона будет указано и смещение, то оба смещения будут суммироваться вместе. Такой подход позволяет обращаться к нескольким структурам в одном блоке данных. Номер блока данных и смещение можно указывать в десятичном (3245) и шестнадцатеричном формате (0xCAD).</li>
<li> <i>bit</i> — номер бита для Логического, [0...7];</li>
<li> <i>tp</i> — тип одним символом из перечня: i-Знаковое целое, u-Беззнаковое целое, r-Вещественное, s-Строка;</li>
<li> <i>sz</i> — размер типа: iu=[1,2(тип.),4,8], r=[4(тип.),8], s=[0(тип.10)...100].</li></ul>
<p>Примеры типов связи:
</p>
<ul><li> "Grp 1|0.0" — Логический в "Grp 1", смещение 0 и бит 0;</li>
<li> "Grp 2|10|1", "Grp 2|0xA|i1" — Целое, из типа ВВ шаблона и прямо, в "Grp 2", смещение 10 и размер 1;</li>
<li> "Grp 3|20|20", "Grp 3|0x13|s20" — Строка, из типа ВВ шаблона и прямо, в "Grp 3", смещение 20 и размер 20.</li></ul>
<p>Наглядный пример общего процесса конфигурации параметра от шаблона и до значений приведен на рисунках от 5 до 8.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:925px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_tmpl_ru.png"><img class="thumbimage" height="579" src="../files/Siemens_tmpl_ru.png" width="923" /></a>  <div class="thumbcaption">Рис.5. Пример шаблона с группированием.</div></div></div></div>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:817px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_prm_tmpl_ru.png"><img class="thumbimage" height="513" src="../files/Siemens_prm_tmpl_ru.png" width="815" /></a>  <div class="thumbcaption">Рис.6. Вкладка конфигурации шаблона параметра.</div></div></div></div>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:817px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_prm_tmpl_off_ru.png"><img class="thumbimage" height="513" src="../files/Siemens_prm_tmpl_off_ru.png" width="815" /></a>  <div class="thumbcaption">Рис.7. Вкладка конфигурации шаблона параметра с указанием параметров по отдельности.</div></div></div></div>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:796px;"><a class="image" href="http://oscada.org/wiki/File:Siemens_prm_val_ru.png"><img class="thumbimage" height="555" src="../files/Siemens_prm_val_ru.png" width="794" /></a>  <div class="thumbcaption">Рис.8. Значения параметра.</div></div></div></div>
<p><a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Модулем поддерживается адресация только к блокам данных (БД) контроллеров.
</p><p>Модулем предусмотрена особая обработка ряда атрибутов шаблона:
</p>
<ul><li> <i>f_frq</i> — частота вычисления процедуры шаблона, только чтение.</li>
<li> <i>f_start</i> — флажок первого выполнения процедуры шаблона — запуск, только чтение.</li>
<li> <i>f_stop</i> — флажок последнего выполнения процедуры шаблона — останов, только чтение.</li>
<li> <i>f_err</i> — ошибка параметра, полный доступ. Значение этого атрибута шаблона попадает в атрибут ошибки параметра — "err".</li>
<li> <i>SHIFR</i> — значение шифра параметра, только чтение.</li>
<li> <i>NAME</i> — значение имени параметра, только чтение.</li>
<li> <i>DESCR</i> — значение описания параметра, только чтение.</li>
<li> <i>this</i> — объект данного параметра, позволяет получить доступ к атрибутам параметра, например, для доступа к архивам.</li></ul>
<h4><span class="mw-headline" id=".D0.9F.D1.80.D0.BE.D1.81.D1.82.D0.BE.D0.B9_.28PrmS.29"><span class="mw-headline-number">3.2</span> Простой (PrmS)</span></h4>
<p>Главная страница конфигурации параметра простого типа представлена на рисунке 9.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:735px;"><a class="image" href="http://oscada.org/wiki/File:SiemensSimpl_prm_ru.png"><img class="thumbimage" height="668" src="../files/SiemensSimpl_prm_ru.png" width="733" /></a>  <div class="thumbcaption">Рис.9. Вкладка конфигурации параметра простого типа.</div></div></div></div>
<p>Линия атрибута в параметре списка атрибутов записывается как "<b>(DB{N}|F).{off}.{tp}{SzBit}:{flg}:{id}[:{name}]</b>".<br />
Где:
</p>
<ul><li> <b>DB</b>{<i>N</i>} — десятичный номер Блока Данных, может быть отрицательным для специфических областей данных типов подключения ISO_TCP (смотрите <a href="#DataAreas">Дополнение A</a> на предмет областей данных);</li>
<li> <b>F</b> — специфическая область данных Флагов/Маркеров (131) типов подключения ISO_TCP;</li>
<li> <i>off</i> — смещение в Блоке Данных;</li>
<li> <i>tp</i> — тип одним символом из перечня: b-Логический, i-Знаковое целое, u-Беззнаковое целое, r-Вещественное, s-Строка;</li>
<li> <i>SzBit</i> — размер типа для не Логического или бит байта для него: b=[0...7], iu=[1,2(тип.),4,8], r=[4(тип.),8], s=[0(тип.10)...100];</li>
<li> <i>flg</i> — флаги: режим чтения/записи (r-чтение, w-запись);</li>
<li> <i>id</i> — идентификатор создаваемого атрибута;</li>
<li> <i>name</i> — имя создаваемого атрибута.</li></ul>
<p>Примеры конечных адресов:
</p>
<ul><li> "DB1.12.b2:r:var:Variable" — Логический в БД 1, смещение 12 и бит 2;</li>
<li> "DB2.24.u:rw:var:Variable", "DB2.0x18.r8:w:var" — Целое или Вещественное в БД 2, смещение 24, размер типовой и 8;</li>
<li> "DB4.0x30.s20:r:var:Variable" — Строка в БД 4, смещение 48 и размер 20;</li>
<li> "F12.b5:r:var:Variable" — Логическое в области данных Флаги/Маркеры, смещение 12 и бит 5.</li></ul>
<p>Линия, которая начинается с символа '#', считается комментарием и не обрабатывается.
</p><p>В соответствии с указанным списком атрибутов выполняется опрос и создание атрибутов параметра (рис.10).
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:735px;"><a class="image" href="http://oscada.org/wiki/File:SiemensSimpl_prm_atr_ru.png"><img class="thumbimage" height="569" src="../files/SiemensSimpl_prm_atr_ru.png" width="733" /></a>  <div class="thumbcaption">Рис.10. Вкладка атрибутов параметра простого типа.</div></div></div></div>
<h2><span class="mw-headline" id=".D0.90.D1.81.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.BD.D1.8B.D0.B9_.D1.80.D0.B5.D0.B6.D0.B8.D0.BC_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8"><span class="mw-headline-number">4</span> Асинхронный режим записи</span></h2>
<p>Стандартным режимом записи для SCADA-систем, взаимодействующих с PLC, является синхронный, поскольку он позволяет контролировать корректность завершения операции записи. Однако, в случае записи множества параметров сразу, такой подход не оправдан в виду отправки множества мелких запросов в контроллер, что его перегружает и занимает большой интервал времени. Решением этой проблемы является асинхронная запись смежных значений одним блоком. Такой режим поддерживается этим модулем и позволяет записывать все параметры сразу смежными блоками по 240 байт. Чтение и запись в таком режиме производится смежными блоками с периодичностью опроса контроллера.
</p>
<h3><span class="mw-headline" id="API_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F"><span class="mw-headline-number">4.1</span> <span id="UserAPI" title="#UserAPI">API пользовательского программирования</span></span></h3>
<p>В виду поддержки параметров логического типа, имеет смысл предоставление ряда функций пользовательского API для их вызова из шаблона логического параметра.
</p><p><b>Объект "Параметр" [this]</b>
</p>
<ul><li> <i>bool attrAdd( string id, string name, string tp = "real", string selValsNms = "" )</i> [<span style="color: red">для включенного параметра логического типа</span>] — добавление атрибута <i>id</i> с именем <i>name</i> и типом <i>tp</i>. Если атрибут уже присутствует то будут применены свойства, которые возможно изменить "на ходу": имя, режим выбора и параметры выбора.
<ul><li> <i>id, name</i> — идентификатор и имя нового атрибута;</li>
<li> <i>tp</i> — тип атрибута [boolean | integer | real | string | text | object] + режим выбора [sel | seled] + только для чтения [ro];</li>
<li> <i>selValsNms</i> — две строки со значениями в первой и их именами во второй, разделённые ";".</li></ul></li>
<li> <i>bool attrDel( string id )</i> [<span style="color: red">для включенного параметра логического типа</span>] — удаление атрибута <i>id</i>.</li></ul>
<p><br />
</p>
<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5_A._.D0.9E.D0.B1.D0.BB.D0.B0.D1.81.D1.82.D0.B8_.D0.94.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B9_ISO_TCP_.28.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B0.D1.8F_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0_LibnoDave.29"><span class="mw-headline-number">5</span> <span id="DataAreas" title="#DataAreas">Приложение A. Области Данных подключений ISO_TCP</span> (<a class="external text" href="http://www.proview.se/misc/libnodave/area.html" rel="nofollow noreferrer noopener" target="_blank">исходная таблица LibnoDave</a>)</span></h2>
<table class="wikitable">

<tr>
<th> Название </th>
<th> Код </th>
<th> Элемент примера(Немецкое) </th>
<th> Элемент примера(Английское)
</th></tr>
<tr>
<td> Блоки данных </td>
<td> 132 </td>
<td> DB3.DBD4 </td>
<td> DB3.DBD4
</td></tr>
<tr>
<td> Флаги/Маркеры </td>
<td> 131 </td>
<td> MW4 </td>
<td> FW4
</td></tr>
<tr>
<td> Образ входной памяти </td>
<td> 129 </td>
<td> EB2 </td>
<td> IB2
</td></tr>
<tr>
<td> Образ выходной памяти </td>
<td> 130 </td>
<td> AD8 </td>
<td> QD8
</td></tr>
<tr>
<td> Таймеры </td>
<td> 29 </td>
<td> T2 </td>
<td> T2
</td></tr>
<tr>
<td> Счётчики </td>
<td> 28 </td>
<td> Z2 </td>
<td> C2
</td></tr>
<tr>
<td> Прямой В/В </td>
<td> 128 </td>
<td> PEW4 </td>
<td> PIW4
</td></tr>
<tr>
<td> Системная информация семейства 200 </td>
<td> 3 </td>
<td> </td>
<td>
</td></tr>
<tr>
<td> Данные (V-память) у S7-200 </td>
<td> 132 </td>
<td> VW1234 </td>
<td> VW1234
</td></tr>
<tr>
<td> Область системных флажков семейства 200 </td>
<td> 5 </td>
<td> SMB0 </td>
<td> SFB0?
</td></tr>
<tr>
<td> Слова аналоговых входов семейства 200 </td>
<td> 6 </td>
<td> AEW0 </td>
<td> AIW0?
</td></tr>
<tr>
<td> Слова аналоговых выходов семейства 200 </td>
<td> 7 </td>
<td> AAW0 </td>
<td> AQW0?
</td></tr>
<tr>
<td> IEC Таймеры </td>
<td> 31 </td>
<td> T2 </td>
<td> T2
</td></tr>
<tr>
<td> IEC Счётчики </td>
<td> 30 </td>
<td> Z2 </td>
<td> C2
</td></tr></table>
<h2><span class="mw-headline" id=".D0.97.D0.B0.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"><span class="mw-headline-number">6</span> <span id="Notes" title="#Notes">Замечания</span></span></h2>
<p>После целенаправленного поиска было обнаружено несколько решений проблемы коммуникации с промышленными контроллерами фирмы Siemens посредством различных коммуникационных интерфейсов:
</p>
<ul><li> Обнаружено достаточно много решений от фирмы Siemens, которые поставляются с решениями поддерживающими открытую ОС "Linux" (<a class="external free" href="http://www.automation.siemens.com/net/html_76/produkte/040_cp_1616.htm" rel="nofollow noreferrer noopener" target="_blank">http://www.automation.siemens.com/net/html_76/produkte/040_cp_1616.htm</a>, ...).</li></ul>
<p>Некоторые специфические проблемы и их решения около коммуникаций с ПЛК Siemens:
</p>
<table class="wikitable">

<tr>
<th> Проблема </th>
<th> Решение
</th></tr>
<tr>
<td> Подключение сбрасывается в ПЛК </td>
<td> Ошибочно определённый слот ЦП ПЛК, попробуйте какой-то другой.
</td></tr>
<tr>
<td> Подключение похоже установлено, но данные с ПЛК не читаются. </td>
<td> Похоже на то, что Вы используете S7-1200, который имеет различные изменения в политике безопасности:
<ul><li> Создайте блок данных в совместимости с S7-300/400 и/или выключите оптимизацию этого блока для появления колонки смещения. Отключите любую защиту этого блока данных. </li>
<li> Если Вы имеете LibnoDave сообщение "error 33028 context is not supported. Step7 says: Function not implemented or error in telegram.", то Вы имеете S7-1200 V4.0 и должны <a class="external text" href="https://sourceforge.net/p/libnodave/discussion/205657/thread/7ec9f370/?limit=25" rel="nofollow noreferrer noopener" target="_blank">предоставить доступ для функций интерфейса Get/Put</a> в конфигурации ПЛК.</li></ul>
</td></tr></table>
<h2><span class="mw-headline" id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="mw-headline-number">7</span> Ссылки</span></h2>
<ul><li> <a class="external" href="http://oscada.org/wiki/File:Siemens_cif2621.tgz" title="File:Siemens cif2621.tgz">Драйвер фирмы Hilscher для плат семейства CIF</a></li>
<li> <a class="external" href="http://oscada.org/wiki/File:Siemens_lastkernels.patch" title="File:Siemens lastkernels.patch">Патч для сборки драйвера для ядра Linux 2.6.29</a></li>
<li> <a class="external" href="http://oscada.org/wiki/File:Siemens_crash_20160127_0911.crash.gz" title="File:Siemens crash 20160127 0911.crash.gz">Отчёт о падении, LibnoDave специфическое</a></li></ul>






</div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/Siemens/ru">Modules/Siemens/ru</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body>
</html>