Пример. Настройка обмена с контроллером Mitsubishi FX2N-16MR по протоколу DeviceNet

  Настройка контроллера

  Программирование контроллера

  Настройка драйвера

В примере показано, как использовать для обмена явные (explicit) сообщения и I/O пакеты.

Настройка контроллера

Контроллеру FX2N-16MR для обмена по сети DeviceNet необходим интерфейсный модуль FX2N-64DNET. Порядок подключения интерфейсного модуля описан в руководстве по эксплуатации "FX2N-64DNET DeviceNet Interface Block. USER’S MANUAL" (файл FX2N-64DNET E.pdf).

Не забудьте поставить терминатор на конец линии CAN (резистор 100-150 Ом), в модуль FX2N-64DNET он не включен.

Кроме физического подключения интерфейсный модуль необходимо сконфигурировать. Установим переключателями скорость обмена 125 Кбод, и MAC ID модуля – 1.

Программирование контроллера

Для того, чтобы контроллер мог обмениваться данными через интерфейсный модуль, модуль нужно активизировать. Пример программы, активизирующей интерфейс DeviceNet, приведен ниже (программа в виде лестничной диаграммы).

В программе-примере при старте контроллера задаются размеры области обмена: 16 байт для explicit сообщений, по 2 байта для приемного и предающего буфера I/O messaging, и активизируется интерфейсный модуль. При работе стадии подключения протокола DeviceNet показываются на выходах 4..6 контроллера. В регистр данных D100 записывается пришедшее значение из I/O пакета, в ответ посылается значение 1122hex. В регистры данных D200..D207 записываются пришедшие по explicit обмену значения, буфер для обратной отправки заполняется значениями 3344hex. Запись программы в контроллер и просмотр содержимого регистров данных осуществляется в программе Mitsubishi MELSEC-FX.

Другие примеры программ (в т.ч. для связи между контроллерами) смотрите в руководстве по эксплуатации интерфейсного модуля - "FX2N-64DNET DeviceNet Interface Block. USER’S MANUAL". Подробное описание синтаксиса лестничных диаграмм дано в руководстве по программированию контроллеров Mitsubishi серии FX.

Настройка драйвера

Заполнение конфигурационного файла для I/O обмена DeviceNet.ini:

 

  

; Baudrate constants:

; 0 - 10K

; 1 - 20K

; 2 - 50K

; 3 - 125K

; 4 - 250K

; 5 - 500K

; 6 - 800K

; 7 - 1000K

 

 [CAN_0]

OpenConnectionTimeout = 2000

CloseConnectionTimeout = 500

ReadTotalTimeout = 1000

ReadIntervalTimeout = 500

Master_MAC_ID = 0

Baudrate = 3  

 

   В данном конфигурационном файле заданы настройки канала с номером 0 интерфейса шины CAN:

   скорость – 125 Кбод;

   идентификатор master-компьютера в сети – 0;

   максимальное время открытия соединения – 2 сек (2000 мс);

   максимальное время закрытия соединения – 500 мс;

   максимальное время принятия всего ответа – 1000 мс;

   максимальный интервал между пакетами в составном ответе – 500 мс.

В настройках группы – контроллера DeviceNet зададим параметры по аналогии с ini-файлом, и укажем адрес прибора = 1.

Согласно документации Mitsubishi, для обмена явными (explicit) сообщениями предназначена сборка (Assembly) с номером 66hex (102dec). По стандарту DeviceNet атрибут с данными, содержащимися в сборке, имеет номер 3. В группе создадим 4 канала Input, адресующиеся к полям 3-го атрибута, и затем 4 канала Output для записи в те же поля.

Созданная по перечисленным выше условиям объектная модель представлена на рисунке:

Записывая значение в Output каналы, на следующем цикле пересчета мы получим те же числа в каналах Input, также пришедшие в регистры данных D200..207. Значения можно проверить в программе Mitsubishi MELSEC-FX в режиме монитора.

Для обмена I/O пакетами создадим в базе 5 каналов – 2 Output канала, задающих размеры буфера отправки и приема (на старте МРВ заполним их значением 2); 1 Input канал, обращающийся к буферу приема, к значению типа WORD и смещением 0; 1 аналогичный Output канал для буфера отправки; и 1 канал – инициатор I/O обмена.

После сеанса I/O обмена, мы можем наблюдать посланное WORD значение в регистре D100, в ответ мы получаем от контроллера число 1122hex.