Подключение SIEMENS SINUMERIK: различия между версиями
(не показано 14 промежуточных версий этого же участника) | |||
Строка 28: | Строка 28: | ||
[[file:SiemensPortForwarding.png]] | [[file:SiemensPortForwarding.png]] | ||
− | На примере выше HMI имеет два сетевых интерфейса: 192.168.50.28 - подключен к сети предприятия, 192.168.214. | + | На примере выше 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.50.28) |
− | * Запомнить IP адрес | + | * Запомнить IP адрес интерфейса подключенного в станочную сеть (в примере 192.168.214.241) |
<span style="color:red"><b>Внимание!</b></span> Адрес на интерфейсе подключённом в станочную сеть менять не надо. | <span style="color:red"><b>Внимание!</b></span> Адрес на интерфейсе подключённом в станочную сеть менять не надо. | ||
* Определить IP адрес контроллера (в примере 192.168.214.1), для этого необходимо запустить командную строку cmd и выполнить команду: | * Определить IP адрес контроллера (в примере 192.168.214.1), для этого необходимо запустить командную строку cmd и выполнить команду: | ||
<code>netstat -ano</code> | <code>netstat -ano</code> | ||
− | в результате выполнения команды отобразится таблица текущих сетевых подключений, необходимо найти строку в которой будет присутствовать IP адрес интерфейса | + | в результате выполнения команды отобразится таблица текущих сетевых подключений, необходимо найти строку, в которой будет присутствовать IP адрес интерфейса, подключенного в станочную сеть (который мы запомнили), второй IP адрес в этой строке и будет IP адресом контроллера (в примере 192.168.214.1) |
− | * Выполнить команду для проброса порта: | + | * Выполнить команду для проброса порта (в командной строке cmd): |
− | <code>netsh interface portproxy add v4tov4 listenport=103 | + | <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)=== | ===Siemens (DDE)=== | ||
Строка 86: | Строка 97: | ||
|- | |- | ||
|Чтение R регистра 502 | |Чтение R регистра 502 | ||
− | |/Channel/Parameter/R[u1, 502] | + | |/Channel/Parameter/R[u1,502] |
| | | | ||
|- | |- | ||
Строка 123: | Строка 134: | ||
<code>/Channel/Parameter/R[123]</code> | <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]] |
Текущая версия на 01:12, 4 апреля 2022
- 840D sl
- 840D pl
- 828D sl
- 810D
- 808D
- 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.
На примере выше 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)
Внимание! Адрес на интерфейсе подключённом в станочную сеть менять не надо.
- Определить IP адрес контроллера (в примере 192.168.214.1), для этого необходимо запустить командную строку cmd и выполнить команду:
netstat -ano
в результате выполнения команды отобразится таблица текущих сетевых подключений, необходимо найти строку, в которой будет присутствовать IP адрес интерфейса, подключенного в станочную сеть (который мы запомнили), второй IP адрес в этой строке и будет IP адресом контроллера (в примере 192.168.214.1)
- Выполнить команду для проброса порта (в командной строке cmd):
netsh interface portproxy add v4tov4 listenport=103 connectport=102 connectaddress=192.168.214.1
Внимание! Проброс порта на ОС Windiws XP работает только в том случае, если установлена поддержка протокола IPv6. Для его установки необходимо выполнить следующую команду:
netsh int ipv6 install
- Если используется FireWall, то необходимо добавить порт 103 в исключения:
netsh firewall add portopening TCP 103 dpaS7 Enable All
После выполнения всех этих действий станок можно подключить к системе DPA. В качестве драйвера нужно выбрать Siemens (Step 7), указать IP адрес и порт (в примере использовался 103). В остальных полях можно оставить значения по умолчанию.
Siemens (DDE)
Предварительно необходимо установить Агент DPA
При создании драйвера необходимо выбрать тип Siemens (DDE). Единственное поле, которое необходимо заполнить это IP-адрес (IP адрес на HMI можно сконфигурировать стандартными средствами ОС Windows). В поле порт можно оставить значение по умолчанию 5505 (агент использует этот порт, если не произовидилась какая-либо кастомизация при установке и настройке агента). Поля Service и Topic заполнять не нужно.
Настройка снапшотов
Механизм расширенной настройки драйвера описан в статье Добавление снапшотов, состояний и событий, в текущем разделе рассказывается только о настройке снапшотов для SIEMENS SINUMERIK
Различия драйверов
На текущий момент есть два вариант подключения станков Siemens:
- Через протокол S7.
- Через агента (Siemens 840D advanced)
Основным различием при создании новых снапшотов является то, что у драйвера, который работает через агента есть дополнительные поля:
- Тип данных (по умолчанию: Auto)
- service (по умолчанию пусто)
- topic (по умолчанию пусто)
эти поля можно не заполнять оставив значения по умолчанию.
Список параметров
Каждый параметр снапшота имеет свое наименование и адрес по которому располагаются данные на станке. После заполнения этих полей, необходимо нажать кнопку Добавить. В одном снапшоте можно указать несколько параметров которые будут прочитаны за один запрос, после ввода данных о каждом параметре необходимо нажимать кнопку Добавить. По завершению формирования списка необходимо нажать кнопку Создать.
Поле, в которое вводится адрес параметра поддерживает автозаполнение – просто начните писать путь и система сама предложит вам дальнейшие варианты.
Внимание! Все пути для чтения параметров начинаются с символа /
Примеры параметров
Номер инструмента на первом канале | /Channel/State/acMeasTNumber[u1,1] | |
Идентификатор инструмента на первом канале | /Channel/State/actToolIdent[u1] | |
Чтение R регистра 502 | /Channel/Parameter/R[u1,502] | |
Чтение AC_TIMER таймера 12 | /Channel/State/acTimer[12] |
Учет времени выпуска
Для учета времени работы УП или подпрограммы или какой-либо части программы можно использовать программные таймеры. Для этого в тело программы необходимо добавить следующий код:
$AC_TIMER[n]=0
где параметр n - любой номер свободного таймера.
Сразу после выполнения данной строчки кода инициализируется новый таймер, который будет хранить время в секундах (дробное число) с момента инициализации таймера. Этот таймер можно использовать в любых расчетах или логических выражениях внутри тела программы. Так же можно записать текущее значение таймера, например, в R-регистр:
R123=$AC_TIMER[n]
при исполнении данной строчки в R-регистр с номером 123 запишется время прошедшее с начала инициализации таймера до момента исполнения данной строчки кода. Когда таймер больше не нужен его можно деактивировать, вызвав следующую строчку кода:
$AC_TIMER[n]=-1
или перезапустить:
$AC_TIMER[n]=0
Чтение текущего значения таймера можно реализовать через чтение соответствующей переменной в снапшоте драйвера:
/Channel/State/acTimer[12]
или через чтение R-регистра, в который предварительно было записано значение таймера:
/Channel/Parameter/R[123]
Ошибки
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