Описание драйверов DeviceNet

  Файлы драйвера

  Интерфейс CAN-bus

Сеть DeviceNet представляет собой один или несколько приборов, каждый из которых однозначно идентифицируется в сети по присвоенному ему адресу – MAC ID. С каждым из приборов возможно два типа обмена – обмен явными (explicit) сообщениями и обмен I/O пакетами.

При explicit-обмене контроллер представляется в виде объектно-ориентированной модели, и состоит из набора классов, объектов этих классов, атрибутов и методов объектов. Атрибуты могут быть как простыми (BYTE, WORD, REAL) так и составными из простых типов. Драйвер поддерживает два метода классов: Get_Attribute_Single() и Set_Attribute_Single(). Подробнее про объектную модель см. документацию DeviceNet.

В протоколе DeviceNet также предусмотрел специальный тип обмена – I/O Messaging. При данном типе обмена после установки соединения master и slave устройства обмениваются блоками данных произвольной длины – размеры принимаемого и отправляемого буфера задаются при программировании контроллера. Блок данных, посланный ведущим компьютером, интерпретируется контроллером согласно заложенной программе, он может иметь нулевую длину или игнорироваться. В ответ на запрос контроллер формирует свой блок данных и отправляет ведущему.

   

    

Файлы драйвера

Список файлов драйвера протокола DeviceNet:

   Canbus_stub.dll – интерфейс CAN-bus;

   DN_Editor.dll – редактор объектной модели устройств DeviceNet;

   canXXmacYY.adn – файлы с объектной моделью подключенных приборов, XX – номер интерфейса шины CAN, YY – MAC ID прибора;

   DeviceNetSettings.dat – двоичный файл с настройками параметров DeviceNet;

   device_net_editor_plugin.dll – библиотека для работы в среде разработки TM6;

   media9.dll – модуль описания носителя;

   t12s9.dll – библиотека  драйвера, обеспечивают обмен между МРВ и устройствами DeviceNet.

Файлы должны находиться в корневой директории Trace Mode.

Интерфейс CAN-bus

Библиотека интерфейса шины CAN canbus_stub.dll должна находиться в директории Trace Mode. Эта библиотека должна экспортировать следующий набор функций:

int CAN_Init(int channel, eCIBR baud_rate);

int CAN_Send(int channel, unsigned short id, unsigned char* data, unsigned char data_len);

int CAN_Recv(int channel, unsigned short* pId, unsigned char* data, unsigned char* pLen);

void CAN_Close(int channel);

Первым параметром каждой функции является номер канала CAN, в функции отправки и приема пакетов передаются/принимаются также идентификатор пакета, массив байт и его длина (до 8 байт). При инициализации скорость обмена задается в виде константы, согласно перечислению:

enum eCIBR

{

CIBR_10K, // 0

CIBR_20K, // 1

CIBR_50K, // 2

CIBR_125K, // 3

CIBR_250K, // 4

CIBR_500K, // 5

CIBR_800K, // 6

CIBR_1000K // 7

};

Драйвер поставляется с библиотекой для платы – интерфейса шины CAN производства ООО "Марафон" ( http://can.marathon.ru/ ).

При использовании других плат пользователь должен написать библиотеку с реализацией перечисленных функций самостоятельно.