:802D sl pro/plus/base
:802D
==Подключение==
Есть два варианта подключения станков Siemens Sinumerik к системе DPA, каждый вариант реализован в виде отдельного драйвера:
*'''Siemens (Step 7)''' - чтение данных по TCP/IP протоколу S7.
*'''Siemens (DDE)''' - чтение данных через механизм взаимодействия приложений в операционных системах Microsoft Windows, для этого драйвера необходимо предварительно установить [[Агент DPA]]
Если HMI работает под управлением ОС Windows (как правило это Windows XP) и в диспетчере задач среди запущенных процессов присутствует процесс '''ncdde.exe''' это однозначно говорит о том, что необходимо использовать драйвер '''Siemens (DDE)''', во всех остальных случаях подойдет драйвер '''Siemens (Step 7)'''.
На текущий момент встречался только один тип ЧПУ, который подключается через DDE - это '''840D'''.
===Siemens (Step 7)===
Настройка сводится к тому, что в HMI необходимо выставить опцию S7 и установить корректный IP адрес. После этого можно подключать станок к системе DPA.
====Проброс порта====
Встречаются станки, на которых HMI работает под управлением ОС Windows и в нем присутствует два сетевых интерфейса: один - внутренняя сеть станка, второй - сеть предприятия. При таком сценарии HMI общается с контроллером через внутреннюю сеть и протокол S7 не доступен из сети предприятия. Для того, чтобы подключить такой станок к системе DPA предварительно необходимо сделать проброс порта с сетевой карты станка которая подключена к сети предприятия на 102 порт контроллера, который подключен ко второй сетевой карте. Это можно сделать штатными средствами ОС Windows.
[[file:SiemensPortForwarding.png]]
На примере выше HMI имеет два сетевых интерфейса: 192.168.50.28 - подключен к сети предприятия, 192.168.214.241 подключен к контроллеру, который находится по адресу 192.168.214.1. Необходимо сделать так, чтобы входящие соединения на 103 порт интерфейса 192.168.50.28 переадресовывались на 102 порт контроллера.
Для настройки проброса порта необходимо выполнить следующие действия:
* Установить корректный IP адрес на сетевом интерфейсе, подключенном в сеть предприятия (в примере: 192.168.50.28)
* Запомнить IP адрес интерфейса подключенного в станочную сеть (в примере 192.168.214.241)
<span style="color:red"><b>Внимание!</b></span> Адрес на интерфейсе подключённом в станочную сеть менять не надо.
* Определить IP адрес контроллера (в примере 192.168.214.1), для этого необходимо запустить командную строку cmd и выполнить команду:
<code>netstat -ano</code>
в результате выполнения команды отобразится таблица текущих сетевых подключений, необходимо найти строку, в которой будет присутствовать IP адрес интерфейса, подключенного в станочную сеть (который мы запомнили), второй IP адрес в этой строке и будет IP адресом контроллера (в примере 192.168.214.1)
* Выполнить команду для проброса порта (в командной строке cmd):
<code>netsh interface portproxy add v4tov4 listenport=103 connectport=102 connectaddress=192.168.214.1</code>
<span style="color:red"><b>Внимание!</b></span> Проброс порта на ОС Windiws XP работает только в том случае, если установлена поддержка протокола [https://support.microsoft.com/en-us/help/555744 IPv6]. Для его установки необходимо выполнить следующую команду:<br/>
<code>netsh int ipv6 install</code>
* Если используется FireWall, то необходимо добавить порт 103 в исключения:
<code>netsh firewall add portopening TCP 103 dpaS7 Enable All</code>
[[file:Netstat portForward.png]]
После выполнения всех этих действий станок можно подключить к системе DPA. В качестве драйвера нужно выбрать '''Siemens (Step 7)''', указать IP адрес и порт (в примере использовался 103). В остальных полях можно оставить значения по умолчанию.
[[file:NewDriverSiemensS7portForward.png]]
===Siemens (DDE)===
Предварительно необходимо [[Агент_DPA_для_платформы_NT#Установка и настройка|установить Агент DPA]]
При создании драйвера необходимо выбрать тип '''Siemens (DDE)'''. Единственное поле, которое необходимо заполнить это '''IP-адрес''' (IP адрес на HMI можно сконфигурировать стандартными средствами ОС Windows). В поле '''порт''' можно оставить значение по умолчанию '''5505''' (агент использует этот порт, если не произовидилась какая-либо кастомизация при установке и настройке агента). Поля '''Service''' и '''Topic''' заполнять не нужно.
[[file:NewDriverSiemensDDE.png]]
==Настройка снапшотов==
|-
|Чтение R регистра 502
|/Channel/Parameter/R[u1, 502]
|
|-
===Учет времени выпуска===
Для учета времени работы УП или подпрограммы или какой-либо части программы можно использовать програмные программные таймеры. Для этого в тело программы необходимо добавить следующий код:
<code>$AC_TIMER[n]=0</code>
где парамтр параметр n - любоый любой номер свободного таймера.
Сразу после выполнения данной строчки когда кода инициализируется новый таймер, который будет хранить время в секундах (дробное число) с момента инициализации таймера.
Этот таймер можно использовать в любых расчетах или логических выражениях внутри тела программы.
Так же можно записать текущее значение таймера, например, в R-регистр:
<code>R123=$AC_TIMER[n]</code>
при исполнении данной строчки в R-регистр с номером 123 запишется время прошедшее с начала инициализации таймера до момента исполнения данной строчки кода.
Когда таймер больше не нужен его можно деактивировать , вызвав следующую строчку кода:
<code>$AC_TIMER[n]=-1</code>
или перезапустить:
<code>$AC_TIMER[n]=0</code> Чтение текущего значения таймера можно реализовать через чтение соответствующей переменной в снапшоте драйвера: <code>/Channel/State/acTimer[12]</code> или через чтение R-регистра, в который предварительно было записано значение таймера: <code>/Channel/Parameter/R[123]</code> ==Ошибки== ===5000 Задание на связь невыполнимо 50580=== При использовании протокола S7 возможно появление ошибки 5000 Задание на связь невыполнимо 50580.Это связано с тем, что у контроллера программно ограничено количество одновременных подключений.Изменить это можно с помощью переменной '''$MN_MM_NUM_MMC_UNITS'''В случае возникновения этой ошибки необходимо увеличить значение этой переменной на 2, после чего произвести полную перезагрузку станка. Установка соответствующей настройки зависит от версии и производителя HMI.Необходимо перейти в привилегированный режим Manufacturer, затемSetup -> Machine Data (MD) -> General MDНайти параметр $MN_MM_NUM_MMC_UNITS и увеличить значение на 2
Чтение текущего значения таймера можно релизовать через чтение соответствующей переменной в снапшоте драйввера[[file:MN_MM_NUM_MMC_UNITS_1.png]][[file:MN_MM_NUM_MMC_UNITS_2.png]][[file:MN_MM_NUM_MMC_UNITS_3.png]]