Подключение SIEMENS SINUMERIK: различия между версиями

Материал из DPA
Перейти к навигации Перейти к поиску
 
(не показано 55 промежуточных версий 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]]
  
 
==Настройка снапшотов==
 
==Настройка снапшотов==
Строка 35: Строка 88:
  
 
===Примеры параметров===
 
===Примеры параметров===
 +
 +
{| 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.

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)

Внимание! Адрес на интерфейсе подключённом в станочную сеть менять не надо.

  • Определить 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

Netstat portForward.png

После выполнения всех этих действий станок можно подключить к системе DPA. В качестве драйвера нужно выбрать Siemens (Step 7), указать IP адрес и порт (в примере использовался 103). В остальных полях можно оставить значения по умолчанию.

NewDriverSiemensS7portForward.png

Siemens (DDE)

Предварительно необходимо установить Агент DPA

При создании драйвера необходимо выбрать тип Siemens (DDE). Единственное поле, которое необходимо заполнить это IP-адрес (IP адрес на HMI можно сконфигурировать стандартными средствами ОС Windows). В поле порт можно оставить значение по умолчанию 5505 (агент использует этот порт, если не произовидилась какая-либо кастомизация при установке и настройке агента). Поля Service и Topic заполнять не нужно.

NewDriverSiemensDDE.png

Настройка снапшотов

Механизм расширенной настройки драйвера описан в статье Добавление снапшотов, состояний и событий, в текущем разделе рассказывается только о настройке снапшотов для SIEMENS SINUMERIK

Различия драйверов

На текущий момент есть два вариант подключения станков Siemens:

  • Через протокол S7.
  • Через агента (Siemens 840D advanced)

Основным различием при создании новых снапшотов является то, что у драйвера, который работает через агента есть дополнительные поля:

  • Тип данных (по умолчанию: Auto)
  • service (по умолчанию пусто)
  • topic (по умолчанию пусто)

NewSiemensDDESnapshot.png NewSiemensS7Snapshot.png

эти поля можно не заполнять оставив значения по умолчанию.

Список параметров

Каждый параметр снапшота имеет свое наименование и адрес по которому располагаются данные на станке. После заполнения этих полей, необходимо нажать кнопку Добавить. В одном снапшоте можно указать несколько параметров которые будут прочитаны за один запрос, после ввода данных о каждом параметре необходимо нажимать кнопку Добавить. По завершению формирования списка необходимо нажать кнопку Создать.

Поле, в которое вводится адрес параметра поддерживает автозаполнение – просто начните писать путь и система сама предложит вам дальнейшие варианты.

Внимание! Все пути для чтения параметров начинаются с символа /

Примеры параметров

Номер инструмента на первом канале /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

MN MM NUM MMC UNITS 1.png MN MM NUM MMC UNITS 2.png MN MM NUM MMC UNITS 3.png