AMS (Automation Message Specification) – содержимое и структура сообщений ADS.
Каждое устройство или программный сервис ADS имеет свой уникальный номер или номер порта (AdsPortNr). Часть номеров заранее занята стандартными и системными сервисами.
Общение между ADS-устройствами может происходить поверх любой сети, а в разных сетях – разная адресация и, вообще, все разное. Кто-то должен перебрасывать мостик между «тем и другим»; в TwinCAT этим занимается AMS Message Router (AMS-роутер, ADS-роутер или просто роутер). Для примера, возьмем ситуацию, когда контроллер извне общается через Ethernet, а внутри через EtherCAT.
Каждый контроллер шины имеет собственный ADS-роутер. В данном случае, он будет транслировать IP-адреса и пакеты Ethernet в AmsNetId-адреса и пакеты EtherCAT. Например, на EtherCAT-шине AmsNetId-адрес устройства = 5.2.100.109.1.1, это же устройство на шине Ethernet может иметь адрес = 192.168.1.100.
Часто, для удобства, начальные части адресов делают одинаковыми: 192.168.1.100.1.1 и 192.168.1.100, но совпадать они не обязаны и часто совпадают из-за того, что конфигуратор автоматически сформировал AmsNetId-адрес из IP-адреса: взял IP-адрес и приписал к нему «.1.1».
ADS и AMS - это разные вещи: один – это архитектура устройств, другой – структура сообщений. Соответственно, ADS-роутер занимается передачей пакетов и трансляцией адресов между устройствами и сервисами. Термин AMS-роутер чаще употребляется в значении трансляции адресов.
- AMS-адреса никак не связаны с IPv6.
- AmsNetId – это на самом деле адрес AMS-роутера, а не устройства.
- Устройства (как и сервисы) адресуются по номеру порта: 801, 501, и т. п.
Настройка роутера
Такой диалог появляется, если потыкать курсором в системный лоток и выбрать настройки TwinCAT. Посмотрите, сколько различных транспортов можно выбрать для связи устройств.
Диалог задает Static Route. Записи такого типа существуют вечно. Точнее, до тех пор, пока пользователь ее не удалит. Вечность записи обеспечивает системный реестр операционной системы:
HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\Remote\Ключи можно удалять и добавлять через редактор реестра: роутер продолжит работать с новой конфигурацией, перезапускать его не требуется. Кстати, Slow Connection задает очень долгое ожидание подключения устройства и никак не влияет на скорость обмена с устройством. Если галку снять, таймаут будет равен двум секундам.
Если заглянуть под капот устройств c Windows CE 5/6/7, то мы увидим похожую картину. Разве что ветка реестра… хм, она будет той же самой.
В TwinCAT System Manager можно обнаружить еще несколько разновидностей роутинга: Temporary, Current и Project:
- Current – фикция и обман, всего лишь вкладка, отображающая на выбранном устройстве все активные на данный момент записи роутера.
- Project – запись роутера которая пропишется при активации конфигурации. Ее очень удобно хранить вместе с конфигурацией проекта (например, когда нужно «залить» 1500 контроллеров для «кинематического дождя»).
- Temporary – я долго искал, где она хранится, пока не обнаружил ее в памяти Windows-службы TwinCAT System Service. Соответственно, эти записи роутера живут до первого перезапуска сервиса или же перезапуска операционной системы (или контроллера).
- …и конечно же Static – его также можно создать здесь.
Если из системного лотка создаются записи для локальной системы, то с помощью System Manager можно создавать записи роутера для удаленной системы и записи между удаленными системами.
Стоит учесть, что не все устройства содержат полноценные роутеры – некоторые формируют AmsNetId на основе IP-адреса (например, так делали графические панели Вейнтек) или каким-либо другим способом. Тем не менее, перед работой с протоколом ADS нужно каким-либо способом создать записи в роутерах: как с «этой стороны», так и с «той стороны».