Подключение SIEMENS SINUMERIK: различия между версиями
(не показаны 62 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Ссылки ЧПУ}} | ||
+ | |||
:840D sl | :840D sl | ||
:840D pl | :840D pl | ||
Строка 6: | Строка 8: | ||
:802D sl pro/plus/base | :802D sl pro/plus/base | ||
:802D | :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]] | ||
==Настройка снапшотов== | ==Настройка снапшотов== | ||
− | Механизм расширенной настройки драйвера описан в статье [[Добавление снапшотов, состояний и событий]], в текущем рассказывается только о настройке снапшотов для SIEMENS SINUMERIK | + | Механизм расширенной настройки драйвера описан в статье [[Добавление снапшотов, состояний и событий]], в текущем разделе рассказывается только о настройке снапшотов для SIEMENS SINUMERIK |
+ | |||
+ | ===Различия драйверов=== | ||
На текущий момент есть два вариант подключения станков Siemens: | На текущий момент есть два вариант подключения станков Siemens: | ||
Строка 14: | Строка 69: | ||
* Через агента (Siemens 840D advanced) | * Через агента (Siemens 840D advanced) | ||
− | Основным различием при | + | Основным различием при создании новых снапшотов является то, что у драйвера, который работает через агента есть дополнительные поля: |
* Тип данных (по умолчанию: Auto) | * Тип данных (по умолчанию: Auto) | ||
* service (по умолчанию пусто) | * service (по умолчанию пусто) | ||
Строка 22: | Строка 77: | ||
[[file:newSiemensS7Snapshot.png]] | [[file:newSiemensS7Snapshot.png]] | ||
− | эти поля можно не заполнять оставив | + | эти поля можно не заполнять оставив значения по умолчанию. |
+ | |||
+ | ===Список параметров=== | ||
+ | |||
+ | Каждый параметр снапшота имеет свое наименование и адрес по которому располагаются данные на станке. После заполнения этих полей, необходимо нажать кнопку '''Добавить'''. В одном снапшоте можно указать несколько параметров которые будут прочитаны за один запрос, после ввода данных о каждом параметре необходимо нажимать кнопку '''Добавить'''. По завершению формирования списка необходимо нажать кнопку '''Создать'''. | ||
+ | |||
+ | Поле, в которое вводится адрес параметра поддерживает автозаполнение – просто начните писать путь и система сама предложит вам дальнейшие варианты. | ||
+ | |||
+ | <span style="color:red"><b>Внимание!</b></span> Все пути для чтения параметров начинаются с символа '''/''' | ||
+ | |||
+ | ===Примеры параметров=== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |Номер инструмента на первом канале | ||
+ | |/Channel/State/acMeasTNumber[u1,1] | ||
+ | |- | ||
+ | |Идентификатор инструмента на первом канале | ||
+ | |/Channel/State/actToolIdent[u1] | ||
+ | |- | ||
+ | |Чтение R регистра 502 | ||
+ | |/Channel/Parameter/R[u1,502] | ||
+ | | | ||
+ | |- | ||
+ | |Чтение AC_TIMER таймера 12 | ||
+ | |/Channel/State/acTimer[12] | ||
+ | |} | ||
+ | |||
+ | ===Учет времени выпуска=== | ||
+ | |||
+ | Для учета времени работы УП или подпрограммы или какой-либо части программы можно использовать программные таймеры. Для этого в тело программы необходимо добавить следующий код: | ||
+ | |||
+ | <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]] |
Текущая версия на 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