книги / SCADA-╤Б╨╕╤Б╤В╨╡╨╝╤Л ╨║╨░╨║ ╨╕╨╜╤Б╤В╤А╤Г╨╝╨╡╨╜╤В ╨┐╤А╨╛╨╡╨║╤В╨╕╤А╨╛╨▓╨░╨╜╨╕╤П ╨Р╨б╨г ╨в╨Я
..pdfRegType, равным RegOx(R/W); указывает число регистров Ох, записываемых этим каналом, и может принимать значения от 1 до 16; не влияет на другие регистры:
регистры Зх и 4х читаются по одному за одну посылку; регистры 4х записываются по одному за одну посылку; регистры 1х и Ох читаются по 16 за одну посылку, незави симо от значения параметра Q(forOx/lx);
регистры Ох записываются в соответствии со значением па раметра Q(forOx/lx); для записи используются Q(forOx/lx) младших битов канала.
Чтение данных происходит по запросу сервера математической обработки в соответствии с фазой и периодом работы канала, а запись - при изменении выходного значения канала типа «О». При каждой посылке ответ ожидается в течение одной секунды. Если ответа за это время нет, то каналу выставляется признак достовер ности, равный единице, связь с узлом разрывается и предпринима ется попытка восстановить ее заново. Вне зависимости от того, была ли попытка успешной или нет, драйвер возвращает управле ние серверу математической обработки. Если восстановления свя зи не произошло, следующая попытка установки связи повторится при следующем обращении к этому узлу. Необходимо обратить внимание, что при безуспешной попытке записи значения канала система будет пытаться повторять запись до тех пор, пока она не пройдет успешно.
5.3.6. Обмен с контроллерами по протоколу Uni-Telway
Этот драйвер обеспечивает поддержку протокола Uni-Telway для обмена с ПЛК серий TSX компании Telemecanique, входящей в корпорацию Schneider Electric. Протокол Uni-Telway поддержива ется в ПЛК серий TSX Micro, TSX Nano, TSX Premium.
Драйвер поддерживает чтение/запись переменных MW и кон стант KW. Для обмена данными используется последовательный порт компьютера и конвертер RS-232/RS-485. Драйвер оформлен в виде драйвера для обмена по произвольному интерфейсу. Для кор ректной работы драйвера необходимо правильно произвести кон фигурацию порта TER или AUX в ПЛК и последовательного порта компьютера.
Драйвер состоит из следующих файлов: readme_UTWS.pdfописание драйвера;
211
media<n>.dll - драйвер носителя, обеспечивающий передачу и прием данных по протоколу Uni-Telway в режиме Slave;
tl2s<n>.dll - драйвер Uni-Telway, обеспечивающий формиро вание и расшифровку сообщений в режиме Slave;
UTWSconfig.exe - файл конфигурирования списка портов и ПЛК, с которыми может обмениваться данными драйвер;
UTWS.cfg - параметры последовательных портов и ПЛК, с ко торыми может обмениваться данными драйвер;
UniTelwaySlave.DRV - описание драйвера для системы Трейс Моуд.
Все файлы расположены в каталоге системы Трейс Моуд.
3.5.7. Контроль иуправление обменом
Для контроля состояния обмена по внешним и внутренним протоколам предусмотрены каналы подтипа «ДИАГНОСТИКА» с дополнениями к подтипу «DCS», «MODBUS», «КОНТР1», «КОНТР_2».
Для управления обменом по последовательным портам можно использовать каналы подтипа «СИСТЕМНЫЙ» с дополнениями к
подтипу «RS-on-off» и «Ввод», «Вывод». Каждый бит дополнения «RS-on-off» управляет обменом по одному последовательному порту: младший бит - по нулевому порту, а старший - по пятна дцатому. Значение бита, равное единице, запрещает обмен по со ответствующему порту.
3.5.8. Обмен с платамиустройства связи с объектом
Для обмена с платами УСО в МРВ применяется внешний драй вер, который поставляется опционально.
Если используемой платы УСО нет в списке поддерживаемых, то можно получить к ней доступ через внешний драйвер по интер фейсу ТСОМ.
Для обмена данными с платами УСО используются каналы следующих подтипов:
АНАЛОГ;
ДИСКРЕТ.
Первый из них предназначен для работы с платами аналогово го ввода-вывода, а второй - дискретного.
Тип платы указывается как дополнение к подтипу.
Каналы подтипа «АНАЛОГ» имеют следующие пять настроек:
212
BASE |
- базовый адрес платы; |
СН |
- номер канала на плате; |
MUX |
- номер канала на мультиплексоре; |
GAIN/REG |
- параметр усиления; |
ALT/REG |
- сдвиг в битах считанного значения перед его |
записью в канал.
Каналы типа INPUT помещаются в объект «АНАЛОГОВЫЙ ВВОД», a OUTPUT - в объект «АНАЛОГОВЫЙ ВЫВОД».
Каналы подтипа «ДИСКРЕТ» имеют также пять настроек:
BASE |
- базовый адрес платы; |
СН |
- номер канала на плате; |
MUX |
- номер канала на мультиплексоре; |
ТУРЕ |
- тип опроса дискретного сигнала: |
«Быстрый» |
- по прерыванию; |
«Нормальный» |
- с периодом канала; |
STATE |
- тип инициализации портов микросхемы 8255 |
при старте. |
|
Каналы типа INPUT данного подтипа помещаются в стандартный объект базы каналов «ДИСКРЕТНЫЙ ВВОД», a OUTPUT - в объ ект «ДИСКРЕТНЫЙ ВЫВОД».
Для каналов обмена с УСО по последовательному интерфейсу может быть задан повышенный приоритет при обработке. Для это го эти каналы (не более четырех) надо поместить в стандартный объект «БЫСТРАЯ ОБРАБОТКА».
Для измерения частоты изменения дискретных сигналов или подсчета числа импульсов предусмотрен специальный подтип ка налов, который называется «Быстрый». Чтобы контролировать частоту изменения, такому каналу следует задать дополнение к подтипу «Частота», а для подсчета импульсов - дополнение к под типу «Счетчик». Настройка СН1 данного канала указывает канал ввода дискретных сигналов, а настройка Bit - номер бита в вы бранном канале.
Каналы дискретного ввода, на которые указаны ссылки, опра шивают сигналы вне цикла системы с частотой разрешения тайме ра. Оно задается в бланке «Основные» диалога «Параметры узла». Таким образом, максимальная скорость опроса равна 1 мс.
Каналы подтипа «Быстрый» помещаются в объект «БЫСТРАЯ ОБРАБОТКА», а анализируемые ими каналы - в объект
213
«ТАЙМЕРЫ СЧЕТЧИКИ». При работе в реальном времени только первые четыре канала из объекта «ТАЙМЕРЫ СЧЕТЧИКИ» пере
считываются вне цикла системы, а остальные - как обычные кана лы. Таким образом, максимальное число быстро опрашиваемых дискретных сигналов в одном узле равно 32.
Каналы подтипа «Быстрый» в МРВ требуют наличия драйвера поддержки плат УСО.
Большинство плат УСО после получения запроса требуют временных задержек на оцифровку данных, на переключение внутренних или внешних коммутаторов, на отработку усиления и пр. Чтобы установить эти задержки, в параметрах узла преду смотрен набор таймаутов. Для их настройки надо войти в бланк «Тайм-ауты» диалога «Параметры узла». Значения этих тайм аутов задаются в относительных единицах. Реальная задержка определяется производительностью процессора. Задержка обес печивается вставленным в тело программы циклом, внутри кото рого присутствует еще один пустой цикл. В качестве параметра обоих циклов используется введенное значение тайм-аута. Пре дельное значение тайм-аута равно 32 000.
Шкала тайм-аутов является квадратичной. Поэтому при их больших значениях на компьютерах со слабыми процессорами не остается времени на другие процессы и появляется видимый эф фект зависания.
Тайм-аут «ПРЕОБРАЗОВАНИЕ» представляет собой число проверок завершения преобразования. В DOS один запрос осуще ствляется за время порядка 1 мкс, в Windows - за 10 мкс. Посколь ку все тайм-ауты находятся внутри цикла пересчета базы каналов, задавать их избыточно нецелесообразно (при отказе оборудования существенно удлиняется цикл пересчета). По умолчанию значение тайм-аута «ПРЕОБРАЗОВАНИЕ» устанавливается равным 2000 опросов регистра АЦП.
Для управления обменом с платами УСО предназначен канал подтипа «СИСТЕМНЫЙ» с дополнением «Ввод», «Вывод». Для этого используются его биты 0...5. Эти биты управляют следую щими операциями:
0-й бит - чтением аналоговых сигналов;
1-й бит - чтением дискретных сигналов;
2-й бит - формированием аналоговых сигналов;
214
3-й бит - формированием дискретных сигналов;
4-й бит - чтением значений таймеров;
5-й бит - управлением таймерами.
Значения этих битов определяют следующие состояния обмена: О - разрешить; 1 - запретить.
5.3.9. Разработка драйверов
Для обмена данными с устройствами, поддержка которых не реализована в Трейс Моуд, надо разработать драйвер. Интерфейс взаимодействия Трейс Моуд с внешними устройствами оформля ется как динамически загружаемая библиотека и подключается аналогично стандартным драйверам, поставляемым с системой.
Чтобы драйвер обмена с контроллером был доступен для МРВ, он должен быть оформлен как DLL-модуль и размещен в директо рии запуска МРВ. При этом драйверу следует присвоить следую щее имя:
Т11 Sn.DLL - для каналов «КОНТР_1», T12Sn.DLL-для каналов «КОНТР_2»,
где п - номер в списке (от 0 до 31).
Далее следует подключить контроллер к инструментальной системе, чтобы он появился в списке контроллеров при настройке и создании каналов. Для этого надо выполнить два действия.
Во-первых, надо внести в файл Туре 1 l.ini (для каналов подтипа «КОНТР_1») или Typel2.ini (для каналов подтипа «КОНТР 2») название контроллера. Оно должно располагаться на отдельной строке, включать в себя не более 19 символов и не содержать про белов. Указанные файлы располагаются в поддиректории INI ин струментальной системы. Номер строки, в которой находится на звание контроллера,, является его номером в списке при формировании имени файла DLL-модуля.
Во-вторых, надо создать файл описания настроек каналов, об менивающихся с данным контроллером. Имя этого файла должно совпадать с названием контроллера в файле Typell.ini (или Typel2.ini), а расширение должно быть drv.
При отработке любого канала типа «КОНТР1» или «КОНТР 2» МРВ вызывает драйвер, соответствующий дополне нию к подтипу данного канала. При этом драйверу передается удаленный адрес. В нем указываются данные, которые надо за
215
просить у контроллера, или переменная контроллера, в которую надо переслать значение канала.
Удаленный адрес включает в себя 6 байт. Его можно разбить на несколько полей (до шести). Каждое поле может включать в себя один или два байта. Формирование значений полей удаленно го адреса осуществляется с помощью настроек канала.
Связь полей удаленного адреса с настройками канала, имена настроек и способы их формирования описываются в файле
<NAME_KONT>.drv,
где <NAME_KONT> - название контроллера в файле TYPE11 .INI или TYPE12.INI.
Файл <NAME_KONT>.drv имеет текстовый формат. Он дол жен располагаться в директории INI. В первой его строке следует записать имя контроллера, совпадающее с именем файла. На сле дующей строке указывается число полей в удаленном адресе. Да лее следуют строки с описаниями имен и способов формирования настроек и расположения полей в удаленном адресе.
Для полей, формируемых по меню, при нажатии ЛК на назва ние соответствующей настройки на экран выводится диалог со списком заданных для них текстов. При выборе любого из них по лю присваивается значение номера этого текста в списке (начиная с нуля).
Максимальное число текстов для меню, присутствующих в описании удаленного адреса одного контроллера, равно 32.
53.10, Обмен данными с приложениями через механизмы DDE
Одним из механизмов обмена данными приложений Windows является DDE (Dynamic Data Exchange). МРВ может выступать как в качестве DDE-сервера, так и DDE-клиента. Выступая в роли DDE-сервера, МРВ выполняет следующие операции:
посылает реальные значения каналов приложению по своей инициативе (режим ADVISE);
изменяет значения атрибутов каналов по команде другого при ложения (режим РОКЕ);
посылает значения любых атрибутов каналов по запросу дру гого приложения (режим REQUEST).
Чтобы обмениваться данными с МРВ, используя механизм DDE, надо посылать ему запросы в следующем формате:
<server>|<topic>!<item> <data>,
216
где <server> |
- имя DDE-сервера в формате RTM<nnn>, где |
<ппп> - номер узла, которому адресован запрос; |
|
<topic> |
- тема запроса; в режиме ADVISE указывается GET, |
а в режимах РОКЕ и REQUEST - обозначения атрибутов каналов; |
|
<item> |
- имя канала; |
<data> |
- посылаемое значение в формате числа с плаваю |
щей запятой; оно присутствует только в режиме РОКЕ.
При запросе реального значения в режиме REQUEST в качест ве темы надо указать GET.
Для посылки значения из приложения в атрибут «Вход» канала Трейс Моуд (режим РОКЕ) надо задать тему PUT или GET.
Пример. Требуется запрашивать в режиме ADVISE значения канала TRCAS_234 и помещать их в ячейку В5 таблицы Excel. МРВ, у которого запрашиваются данные, имеет сетевой номер 5.
Для решения этой задачи в ячейку В5 надо занести следующий запрос:
=RTM5|GET!TRCAS_234
Пример. Требуется посылать из EXCEL в диалоге по нажатию кнопки в верхнюю границу шкалы значение 300.
Для решения данной задачи надо выполнить следующие дейст вия:
1)занести в ячейку А1 таблицы «Лист!» значение 300;
2)написать короткий макрос на Visual Basic for Applications:
Sub MyDDE()
channelNumber = Application.DDEInitiate("RTM5", "HL") Application.DDEPoke channelNumber, "TRCAS-234", Worksheetsf^HCT 1 ").Cells(l, 1) Application.DDETerminate channelNumber
End Sub
3) создать диалог и обеспечить выполнение этого макроса при нажатии заданной кнопки в этом диалоге.
Для связи МРВ с другими приложениями, запущенными на удаленных компьютерах, можно использовать механизм NetDDE. Формат запроса в этом случае остается таким же, как описано вы ше. Однако элементы server и topic формируются иначе.
Имя сервера формируется следующим образом: \\<NAME>\NDDE$
где <NAME> - имя компьютера, на котором работает МРВ.
217
В качестве темы надо записать RTM<nnn>$, где <ппп> - номер узла, которому адресован запрос, а в качестве item - имя канала.
При обмене по NetDDE запрашиваются только реальные зна чения каналов и формируются только входные значения.
Управление обменом по DDE осуществляется каналами подти па «СИСТЕМНЫЙ» с дополнением «Сеть», DDE. Для этого ис пользуются биты с шестого по одиннадцатый (считая с нулевого).
Контроль текущего состояния обмена по DDE осуществляется с помощью канала «ДИАГНОСТИКА» с дополнением к подтипу DDE.
Выступая в роли DDE-клиента, МРВ выполняет следующие операции:
принимает данные, посылаемые DDE-серверами, по мере их изменения (режим ADVISE);
управляет переменными в DDE-серверах (режим РОКЕ); запрашивает данные у DDE-серверов (режим REQUEST).
Для обмена данными с DDE-серверами предусмотрен подтип каналов «DDE». Его дополнение к подтипу указывает файл конфи гурации обмена. Такие файлы должны располагаться в директории проекта. Их имена формируются следующим образом:
DDECNF<n>.CNF
где <п> - номер 0...7; он соответствует значению дополнения к подтипу (если дополнение к подтипу DDE0, то п должно быть равно нулю, если DDE1, то единице и т. д.).
Настройки каналов подтипа DDE определяют режим обмена, а также метод и режим формирования запросов у DDE-сервера.
Этот файл имеет текстовый формат и содержит следующую информацию:
server topicO [format_item] topic1
• • • •
где server — имя DDE-сервера; topic <n> — название темы (до 256 тем, которые выбираются настройкой канала D); format item - формат элемента item.
Формат item может отсутствовать. В этом случае для канала надо выбрать режим использования его имени в качестве item.
Строка описания элемента item может содержать тексты и форматы вывода чисел в нотации языка Си. При формировании DDE запроса item будет состоять из текстов и вставленных в него
218
Следующая настройка (формат) определяет метод формирова ния элемента item в запросе. Метод выбирается из списка, содер жащего следующие пункты:
имя |
- в качестве item используется имя канала; |
2 параметра |
- в строке описания формата элемента item |
может присутствовать до двух полей вставки чисел. Значение первого числа определяется значениями настроек А и В (млад ший и старший байт соответственно), а второго - значением на стройки С;
3 параметра - в строке описания формата элемента item мо жет присутствовать до трех полей вставки чисел. Значения перво го, второго и третьего чисел определяются значениями настроек А, В и С соответственно.
Каждая из настроек А, В, С и D является целым числом длиной в один байт. Соответственно, их значения могут лежать в диапазо не 0...255.
53.11. Обмен данными через механизмы ОРС
Одним из самых перспективных стандартов обмена данными между приложениями Windows, включая и контроллеры, при соз дании систем управления является механизм ОРС (OLE for Process Control).
МРВ может выступать в качестве ОРС-сервера и ОРС-клиента. В качестве ОРС-клиента он поддерживает следующие режимы:
SYNC/CACHE |
- синхронное чтение из кэша; |
|
SYNC/DEVICE |
- |
синхронный обмен данными с устрой |
ством; |
|
асинхронный обмен данными с уст |
ASYNC/DEVICE |
- |
|
ройством; |
|
асинхронное чтение данных при изме |
ADVISE |
- |
|
нении их значения. |
|
|
В режиме ADVISE МРВ принимает значения, присылаемые по каналу подписки. Они обычно присылаются сервером только при изменении значения параметра.
В режиме ASYNC МРВ опрашивает ОРС-сервер и принимает данные, присылаемые по каналу подписки.
Для обмена данными между МРВ и ОРС-сервером МРВ созда ет на ОРС-сервере одну или несколько «приватных» групп. Они имеют следующие имена:
220