Подключение SIEMENS SINUMERIK

Материал из DPA
Перейти к навигации Перейти к поиску

Подключение станков с ЧПУ

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.1 подключен к контроллеру, который находится по адресу 192.168.214.2. Необходимо сделать так, чтобы входящие соединения на 103 порт интерфейса 192.168.50.28 переадресовывались на 102 порт контроллера.

Для настройки проброса порта необходимо выполнить следующие дейсвия:

  • Установить корректный IP адрес на сетевом интерфейсе подключенном в сеть предприятия (в примере: 192.168.50.28)
  • Запомнить IP адрес инетерфейса подключенного в станоченую сеть (в примере 192.168.214.1)

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

  • Определить IP адрес контроллера (в примере 192.168.214.1), для этого необходимо запустить командную строку cmd и выполнить команду:

netstat -ano

в результате выполнения команды отобразится таблица текущих сетевых подключений, необходимо найти строку в которой будет присутствовать IP адрес интерфейса подключенного в станочную сеть (который мы запомнили), второй IP адрес в этой строке и будет IP адресом контроллера (в примере 192.168.214.2)

  • Выполнить команду для проброса порта (в командной строке cmd):

netsh interface portproxy add v4tov4 listenport=103 listenaddress=192.168.50.28 connectport=102 connectaddress=192.168.214.2

После выполнения всех этих действий станок можно подключить к системе 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]