Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / SCADA-╤Б╨╕╤Б╤В╨╡╨╝╤Л ╨║╨░╨║ ╨╕╨╜╤Б╤В╤А╤Г╨╝╨╡╨╜╤В ╨┐╤А╨╛╨╡╨║╤В╨╕╤А╨╛╨▓╨░╨╜╨╕╤П ╨Р╨б╨г ╨в╨Я

..pdf
Скачиваний:
2
Добавлен:
13.11.2023
Размер:
23.86 Mб
Скачать

По умолчанию установлено значение «Связь с контроллера­ ми». Это означает, что порт используется для обмена с контролле­ рами через внешний драйвер или по встроенным протоколам со статусом MASTER. Для обмена по протоколу M LINK со стату­ сом SLAVE в данном поле следует установить назначение Slave M LINK. Режим связи Modem нужно установить для порта при его использовании для обмена по коммутируемым линиям, а ре­ жим GSM_SMS - при обмене по GSM-сети.

Два поля бланка «Параметры портов» предназначены для зада­ ния базового адреса и номера прерывания порта.

При обмене по последовательным портам скорость передачи данных ограничивается расстоянием и наличием помех в линии. Чем ниже скорость обмена, тем меньше вероятность сбоя. Скорость обмена задается в специальном поле бланка «Параметры порта».

В поле «Параметры связи» задаются такие параметры обмена, как: число информационных бит в посылке; число стоповых бит; наличие проверки на четность. Значение всех этих параметров за­ дается выбором из списка. Каждая строка списка содержит одно из доступных сочетаний этих трех параметров.

Значение поля «Тайм-аут на ожидание ответа» вводится непо­ средственно с клавиатуры. Оно задает время ожидания ответа от устройства, которому был послан запрос по данному порту. Время ожидания задается в миллисекундах. Если тайм-аут не задан, то он принимается равным 100 мс.

Если в течение тайм-аута ответ на запрос от устройства или МРВ не пришел, то для канала, запрашивающего эти данные, ус­ танавливается флаг аппаратной недостоверности.

Кроме того, для задания времени задержки на включение пере­ датчика после завершения приема в каналах на базе протоколов RS-485 и RS-232 используется тайм-аут «RS-передача». Его значение в миллисекундах задается в бланке «Тайм-ауты» того же диалога.

Если используется интерфейс RS-485, то надо в поле «Упр. пе­ ред.» указать реализуемый режим управления передатчиком. Кро­ ме выбора режима управления передатчиком при настройке обме­ на по последовательным портам по RS-485 надо задать еще следующие тайм-ауты:

время ожидания ответа на запрос. При нарушении этого тайм-аута для каналов формируется признак недостоверности;

202

задержка начала передачи данных после посылки команды на включение передатчика;

задержка посылки команды на включение передатчика после получения ответа.

5.3.2. Обмен с контроллерами Ремиконт-130

Отечественные промышленные контроллеры Ремиконт Р-130 (ОАО «ЗЭиМ») являются на сегодняшний день самыми распро­ страненными контроллерами в России. С 1991 года их выпущено порядка 20 000.

Обмен данными с этими контроллерами реализуется с помо­ щью каналов подтипа «КОНТР1» с дополнениями Ремиконт-130. Эти каналы имеют следующие настройки:

№порта - номер используемого для обмена последовательного порта (0 - СОМ 1,..., 31 - СОМ32);

№контр-ра - номер контроллера в сети «Транзит»; переменная - тип запрашиваемой или управляемой перемен­

ной.

Тип выбирается из списка, содержащего следующие пункты: NET - опрос сетевых переменных. Для данного типа ко­

манды в настройке №вх/вых задается номер контролируемой пе­ ременной;

КНФ - опрос конфигурации сети (16-битовое число, каж­ дый бит которого - идентификатор наличия контроллера с таким же номером);

ВХ - вход алгоблока; ВЫХ - выход алгоблока;

КНТ - состояние контура. Для данного типа команды в на­ стройке №алгоблока задается номер контура, а в №вх/вых - кон­ тролируемая характеристика: 1 - величина ручного задания; 2 - текущее значение задания; 3 - вход регулятора; 4 - рассогласова­ ние; 5 - выход регулятора; 6 - режим работы контура. Пятый, шес­ той биты: 00 - ЗДЛ отсутствует; 01 - локальный режим; 10 - кас­ кадный режим. Девятый бит - признак ошибки контура. Десятый бит - наличие алгоритма РУЧ. Одиннадцатый бит: 0 - локальный или каскадный; 1 - дистанционный режим. Двенадцатый бит: 0 - автоматический режим; 1 - ручной режим. Тринадцатый, четырна­ дцатый биты: 00 - ЗДН отсутствует; 01 - внешнее задание; 10 - программное задание; 11 - ручное задание;

203

РУЧ - управление значением ручного задания; У_В - управление выходным сигналом;

РЕГ - управление режимом контура: 07 - установка режима ВЗ; 09 - установка режима ПЗ; 0В - установка режима РЗ; 0D - переход на автоматический режим; 0F - установка режима РУ; 11 - установка режима ДУ; 13 - отмена дистанционного управле­ ния; 15 - установка режима КУ; 17 - установка режима ЛУ;

№алгоблока - номер группы, в которую входит переменная; №вх/вых - номер запрашиваемой или управляемой переменной; описание - вид представления переменной.

5.3.3. Обмен данными по протоколу Modbus

Американская компания Modicon разработала в 1979 г. прото­ кол Modbus, который известен во всем мире, принят в качестве стандарта де-факто во всех странах и поддерживается большинст­ вом производителей промышленного и программного оборудова­ ния.

Обмен данными с контроллерами, поддерживающими прото­ кол Modbus, реализуется с помощью каналов подтипа MODBUS. Код команды в запросе по данному протоколу определяется до­ полнением к подтипу этого канала. Дополнение может принимать следующие значения:

1 Rout Byte

- считать байт данных типа out;

2 Rin Byte

- считать байт данных типа in;

3 Rout Word

- считать слово данных типа out;

4 Rin Word

- считать слово данных (2 байт) типа in;

5 W SingleCoil

- передать значение одного дискретного сиг­

нала;

 

 

 

6 W Word

- передать значение слова данных;

7 R Exception

- считать статус контроллера;

3 Rout Float

- считать

переменную с

плавающей точкой

типа out;

 

 

 

4 Rin Float

- считать

переменную с

плавающей точкой

типа in;

 

 

 

16 Wout Float

- передать переменную с

плавающей точкой

типа out;

- передать переменную с плавающей точкой с

16 W Float wait

последующей задержкой на выполнение других команд;

204

6 W Word wait

- передать слово данных с последующей за­

держкой на выполнение других команд;

15 W Byte

- передать байт данных.

Каналы подтипа ModBus имеют следующие настройки: #RS - номер последовательного интерфейса (0 - СОМ1,

31-СОМ32);

ADDR - адрес контроллера (0, ..255); СН - номер переменной;

TYPE - модификация протокола: Modbus - стандартный про­ токол; эмикон - протокол Modbus по шине С05 контроллеров ЭМИКОН; Modbus (No groop write) - стандартный протокол без поддержки группового управления дискретными сигналами.

В Трейс Моуд адрес переменной типа Float в протоколе Modbus представляет собой номер первого из двух слов, состав­ ляющих эту переменную, в массиве слов. Массива переменных Float в Modbus нет. Таким образом, если в контроллере сформиро­ ван массив переменных Float начиная с 30-го слова, то их адреса в базе должны быть 30, 32, 34 и т. д. Четыре байта переменной типа Float передаются в кадры функций 3, 4 и 16 в порядке, указанном на рис. 5.7.

1-й байт

 

2-й байт

3-й байт

4-й байт

Till

I

0 7 J

Цо 7

L L 1

о 7 1 1 1 1 1 0

Знак 1

разряд

Порядокб разряда

Маникса 23 разряда

 

Рис. 5.7. Передача переменной типа Float

53.4. Обмен данными по протоколу ModbusPlus

Драйвер обмена работает с любыми платами ModbusPlus (PCI, ISA, PCMCIA) производства французской корпорации Schneider Electric. Для функционирования драйвера нужна библиотека NETLIB.DLL. Эта библиотека автоматически устанавливается в процессе установки Windows-драйвера (MBX Driver) платы ModbusPlus. Windows-драйвер входит в комплект поставки плат ModbusPlus.

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

205

установить Windows-драйвер платы (MBX Driver); отредактировать файл Typel2.ini, поместив в него строку

«ModbusPlus». Запомнить номер этой строки (первая строка файла Туре 12.ini имеет номер 0);

скопировать в директорию установки инструментальной сис­ темы файл драйвера обмена, переименовав его в tl2sX.dll, где X - номер строки «ModbusPlus» в файле Typel2.ini;

скопировать в поддиректорию INI файл ModbusPlus.drv; скопировать в директорию установки инструментальной сис­

темы файл medial.dll.

Для обмена по протоколу ModbusPlus используются каналы подтипа «КОНТР_2» со следующими настройками:

ADDR - однобайтовое число (задается в десятичном виде). Шесть младших битов этого числа задают адрес контроллера в се­ ти ModbusPlus (0 соответствует адресу 1 в сети Modbus Plus, 63 - адресу 64). Мосты и маршрутизация не поддерживаются. Старший бит настройки ADDR задает номер (0 или 1) используемого порта адаптера (сетевой платы Modbus Plus). Например, для чтения из контроллера с адресом 3 через порт 1 адаптера настройка ADDR должна быть равна 130 (128+2);

COMMAND - команда ModbusPlus из числа реализованных в драйвере (1 байт). Команда выбирается из списка;

OFFSET - смещение первого читаемого регистра относительно начала группы (2 байт). Этот параметр задается в десятичном виде (0...65535). Например, если нужно прочитать 10 out-регистров с 00001 по 000010, то OFFSET=0, COUNT=10. Если нужно прочи­ тать один регистр 40002, то OFFSET=1, COUNT игнорируется;

COUNT - число регистров для чтения/записи (1 байт). Этот па­ раметр имеет смысл только для команд чтения/записи дискретных (однобитовых) регистров Ох и 1х. Регистры Зх и 4х читаются (или в них записывается значение) всегда по одному. Настройка COUNT задается в десятичном виде (1... 16).

В драйвере реализованы следующие команды ModbusPlus (число в скобках соответствует десятичному коду команды; в ко­ мандах 03, 04, 06 COUNT игнорируется):

ReadOx (01) - считать состояние группы дискретных outрегистров. По этой команде можно получить состояние от 1 до 16 дискретных (однобитовых) регистров Ох. Самый младший разряд

206

полученного числа соответствует первому регистру. При запросе менее 16 регистров неиспользуемые разряды заполняются нулями. Если запрошено более 16 регистров, получены будут только пер­ вые 16;

Readlx (02) - то же, что ReadOx, но для in-регистров 1х (одно­ битовых);

WriteOx (15) - записать в Ох однобитовые out-регистры (прави­ ла такие же, как для команды ReadOx);

Read4x (03) - считать один 4х out-регистр (16 бит); Read3x (04) - считать один Зх in-регистр (16 бит); Write4x (06) - записать в один 4х out-регистр (16 бит);

ForceOx (05) - установить/сбросить один Ох out-регистр (одно­ битовый). Нулевое значение, записываемое в канал, соответствует сбросу регистра. Отличное от нуля значение соответствует уста­ новке регистра;

ReadExcpt (07) - считать out-регистры (однобитовые) 00001...00008, при этом полученное число лежит в диапазоне 0...255. Младший бит соответствует регистру 00001, старший - регистру 00008.

5.5.5. Обмен с контроллерами по протоколу Modbus TCP/IP

Драйвер обеспечивает обмен данными в сети Ethernet, исполь­ зуя транспортный протокол TCP/IP и реализацию протокола Modbus/TCP для обмена с ПЛК, включенными непосредственно в сеть Ethernet. Драйвер обеспечивает обмен данными как в режиме чтения, так и в режиме записи. Драйвер поддерживает чтение ре­ гистров Ох, 1х, Зх и 4х и запись регистров Ох и 4х. Для обмена данными используется порт 502 протокола TCP/IP.

Состав драйвера:

readme_MBTCP.pdfописание драйвера;

media<n>.dll - драйвер носителя, обеспечивающий передачу и прием данных по протоколу TCP/IP;

tl2s<n>.dll - драйвер Modbus, обеспечивающий формирование и расшифровку сообщений;

TCPConfigurator.exe - утилита конфигурирования списка уз­ лов, с которыми может обмениваться драйвер;

ModbusTCP.cfg - список узлов TCP/IP, с которыми может об­ мениваться драйвер.

207

Для инсталляции драйвера достаточно указать программе ус­ тановки каталог Трейс Моуд.

Программа установки выполняет следующие действия: распаковывает все файлы во временный каталог;

дает файлу t!2s<n>.dll первый свободный номер из диапазона 0...31;

дает файлу media<n>.dll первый свободный номер из диапазона 0...9;

копирует все файлы драйвера в каталог Трейс Моуд, кроме файла ModbusTCP.DRV;

записывает имя драйвера «ModbusTCP» в каталоге %TraceMode%\INI в файле Typel2.ini в строчке, соответствую­ щей номеру файла tl 2s<n>.dll;

копирует файл ModbusTCP.DRV в каталог %TraceMode%\INI. Для идентификации узла TCP/IP необходимо занести его в

список узлов (ModbusTCP.cfg). Для выполнения этого пункта не­ обходимо воспользоваться утилитой TCPConfigurator.exe. Каж­ дому узлу в списке будет автоматически присвоен идентифика­ тор (HostID), который и будет в дальнейшем соответствовать этому узлу. Максимальное число поддерживаемых узлов 256 (от 0 до 255). Кроме IP-адреса узла для каждого элемента необ­ ходимо указать MBid-идентификатор сети Modbus. Для стан­ дартных узлов, включенных непосредственно в сеть Ethernet, он не имеет значения и его можно оставлять равным нулю. Этот па­ раметр нужен при использовании таких устройств, как ModbusSerial-ModbusEthernet и ModbusPlus-ModbusEthernet мос­ тов. В этом случае необходимо указать адрес, исходя из конфи­ гурации моста и подключенных к нему узлов. После запуска драйвера он автоматически связывается с каждым из узлов. Раз­ рыв связи происходит при завершении работы драйвера.

Утилита TCPConfigurator предназначена для создания списка узлов, с которыми может осуществляться обмен данными. Сам список сохраняется в файле ModbusTCP.cfg в каталоге Трейс Моуд. Основное окно утилиты имеет вид, изображенный на рис. 5.8. В списке узлов каждая строка состоит из трех параметров:

HostID - идентификатор узла (назначается автоматически). Этот параметр затем нужно ввести в поле HostID параметров кана­ ла, чтобы этот канал был связан с данным узлом;

208