Содержание материала

GPS-Приемник        

            Драйвер GPS.dll предназначен для чтения информации с GPS-приемника. Драйвер распознает сообщения с астрономическим временем и передает информацию в Ядро Электро. Ядро рассматривает метки времени в качестве эталона и выполняет синхронизацию времени в компьютере.
Подключение драйвера GPS.dll выполняется стандартным способом – создается цепочка модем – соединение – устройство. При сканировании программой GetDev.exe обнаруживается устройство «GPS-приемник» с серийным номером GPSDEV. Про опросе данного устройства создается параметр «Текущие значения/Рассинхронизация» показывающий разность
Время_от_GPS_приемника – Время_компьютера
При каждом чтении данного параметра, значение Время_от_GPS_приемника передается в Ядро Электро.

            Работа драйвера проверялась на устройстве Garmin GPS18 LVC.
Предварительно, необходимо выполнить конфигурацию устройства с помощью фирменной программы SNSRCFG.exe (можно скачать с www.garmin.com), в частности
- определить скорость обмена (по умолчанию 4800бод)
- переключить устройство на работу по протоколу NMEA
- удостовериться что от устройства поступают сообщения типа GPRMC.

RMC – pекомендуемый минимум GPS / навигационных данных
        1          2  3        4  5         6  7    8    9       10   11 12
$GPRMC, hhmmss.ss, A, 1111.11, N, yyyyy.yy, E, x.x, x.x, ddmmyy, x.x, E *hh

1. Времяфиксацииместоположения (universal time coordinated, UTC)
2. Состояние: А = действительный, V = предупреждение навигационного приёмника
3. Географическая широта местоположения (latitude)
4. Север/Юг (N/S)
5. Географическая долгота местоположения (longitude)
6. Запад/Восток (E/W)
7. Скорость над поверхностью в узлах (SOG in knots)
8. Истинное направление курса в градусах (COG)
9. Дата: dd/mm/yy
10. Магнитное склонение в градусах (magnetic variation)
11. Запад/Восток (E/W)
12. Контрольная сумма строки (обязательно)

Пример сообщения:
$GPRMC,113650.0,A,5548.607,N,03739.387,E,000.01,255.6,210403,08.7,E*69

Драйвер анализирует поля RMC-сообщения ВРЕМЯ (1), ДАТА (9) и СТАТУС (2)

GPS-Приемник в устройствах            Работа драйвера проверена также на GPS-приемнике jj-connect (http://www.jj-connect.ru). После установки устройства jj-connect согласно инструкции в операционной системе появляется виртуальный последовательный порт, в рассматриваемом примере COM16 (CP2101 USB to UART Bridge Controller). Проверить работу устройства можно подключив стандартное приложение Гипертерминал на COM16, скорость 4800бод. В окне Гипертерминала можно наблюдать поступление текстовых сообщений от устройства.
Tip. При устойчивом приеме светодиод постоянно горит; нет приема – мигает; устройство не работает – погашен.

Применение мультиплексора MX16

Мультиплексор MX16 используется для организации сьема информации с электронных счетчиков. Для управления устройством в драйверах SLB.dll и EMFFLAG.dll имеются ключи MX16START, MX16STOP. Ключ MX16START действует после коммутации канала связи и перед непосредственным обращением к счетчику и содержит последовательность команд MX16. Каждая команда имеет синтаксис
            @c!n[,p1[,p2]]
где c – код команды; n – номер MX16; p1,p2 – параметры команды.
Коды команд соответствуют параметрам консольной строки MX16.exe:
            0 – установить новую скорость в последовательном порту.
Пример: @0!45,1200 à MX16 /s1200

            1 – запретить изменение скорости
Пример @1!45 à MX16 DISABLESPD /a45

            2 – разрешить изменение скорости
Пример @2!45 à MX16 ENABLESPD /a45

            3 – установить скорость для COM5
Пример @3!45,5 à MX16 SPEED5 /a45 /f5

            4 – установить соединение с MX16
Пример @4!45,5,0 à MX16 CONNECT /a45 /x5 /n0

            5 –  разорвать соединение с MX16
Пример @5!45 à MX16 CLOSE /a45

            6 – установить новую скорость в MX16
Пример @6!45,5,0 à MX16 SPEED /a45 /x5 /b0

            7 – жесткий рестарт
Пример @7!45 à MX16 HARDRESET/a45

            8 – мягкий рестарт
Пример @8!45 à MX16 SOFTRESET/a45

 

Пример:
MX16START=@3!45,0@4!45,5,0@2!45
Соответствует последовательности команд
MX16 SPEED5 /a45 /f0
MX16 CONNECT /a45 /x5 /n0
MX16 ENABLESPD /a45

Применение преобразователя интерфейсов - коммутатора ПИК-16

Коммутатор ПИК-16 предназначен для организации обмена данными между счетчиками электроэнергии и компьютером по каналам связи (с использованием модема) или непосредственно.
Коммутатор обеспечивает:
- подключение до 16 микропроцессорных электросчетчиков по интерфейсу «токовая петля – 20 мА»)
- организацию канала связи с компьютером по интерфейсу RS-232
- организацию канала связи с компьютером по интерфейсу RS-485
- объединение в локальную сеть с другими коммутаторами по интерфейсу RS-485
Для управления устройством ПИК-16 в некоторых драйверах (см. Табл.1) поддерживается ключ PIK16START. Значением ключа является последовательность команд
@cmd!n,par1,par2
Где
cmd     - команда коммутатора C, R или W. Основная команда С – коммутация канала.
n          - номер коммутатора (используется при каскадном подключении устройств). Обычно используется широковещательный номер 0
par1,par2       - параметры команды коммутатора. Для команды С:
par1 – номер токовой петли 1,..16
par2 – режим использования: 0 - IEC1107; 1 – IEC1142
Примеры:
PIK16START =@C!0,1,0                    - для мультиплексора с широковещательным номером 0 подключить токовую петлю 1 в режиме IEC1107
PIK16START=@R!0,0,0@C!0,5,0            - выдается две команды – вначале чтение конфигурации коммутатора (для справки), затем коммутация токовой петли номер 5. Коды ошибок

#define           SES_OK                                1          // успешно
#define           SES_ERR                              0          // неклассифицированная ошибка
#define           SES_NOTCOMPL                -1         // сессия внезапно прервана извне
#define           SES_OTHERDEV                -2         // обнаружено другое устройство
#define           SES_UNKNSERIAL                       -3         // невозможно определить серийный номер устройства
#define           SES_READOUT                   -4         // ошибка при разборе READOUT-данных
#define           SES_SHUTDOWN               -5         // сессия прервана по команде SHUTDOWN
#define           SES_PARITY                                   -6         // ошибка четности принимаемых данных
#define           SES_BCC                              -7         // ошибка контр.суммы принимаемых данных
#define           SES_NOANSW                    -8         // устройство не ответило
#define           SES_LUCA                           -9         // ошибка драйвера канала связи
#define           SES_UNKNANSW              -10       // непонятный ответ устройства
#define           SES_MEMORY                    -11       // ошибка выделения памяти
#define           SES_JOBS                             -12       // список заданий на опрос не завершен
#define           SES_LINK                            -13       // ошибка коммутации канала связи
#define           SES_SUPPORT                    -14       // неподдерживаемый тип устройства (протокола)
#define           SES_NACK                          -15       // устройство отвергло команду
#define           SES_NOACK                                   -16       // устройство не выдало подтверждение
#define           SES_DATA                           -17       // в ответе устройства отсутствуют данные
#define           SES_DEVERR                      -18       // устройство вернуло код ошибки
#define           SES_FRAME                        -19       // нарушена структура телеграмы (фрейма)
#define           SES_ADDR                          -20       // указан неправильный адрес (номер) параметра
#define           SES_OPENERR                   -21       // ошибка выполнения процедуры OpenPort()

ВНИМАНИЕ,
протокол связи с устройством м.б. достаточно сложным. Зафиксированная на некотором уровне ошибка вызывает аварийное срабатывание на следующем уровне и т.д.
При анализе, обращайте внимание на всю цепочку сообщений об ошибках. Как правило, наиболее информативное самое первое сообщение.