Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа №4
Исследование передачи данных по последовательному каналу
Цель работы: изучение принципов взаимодействия среднего и верхнего уровней работы АСУ дозирования компонентов путем эмулирования их работы.
1. Протокол передачи данных по последовательному порту
Внешнее устройство, например контроллер оператора, посылает команды контроллеру, который в свою очередь выполняет необходимые действия и посылает ответ внешнему устройству. Список используемых команд приведён в таблице 3.2.
Таблица Список команд
Команда |
Посылка внешним устройством |
Посылка КТУ |
1 |
2 |
3 |
Показания массы компонента (без округления, без компенсации массы тары): 0х41 |
2_ADDRSlave_ADDRMaster_ _0х41_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Показания массы компонента (с округления, с компенсации массы тары): 0х42 |
2_ADDRSlave_ADDRMaster_ _0х42_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Команда компенсации массы тары: 0х43 |
2_ADDRSlave_ADDRMaster_ _0х43_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Показания фильтрованных отсчётов АЦП: 0х44 |
2_ADDRSlave_ADDRMaster_ _0х44_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Чтение любой ячейки ОЗУ ВЭБ (до511): 0х45 |
2_ADDRSlave_ADDRMaster_ _0х45_aR1_aR2_aR3_aR4_ _CRC_3 |
2_ADDRMaster_ADDRSlave_bRL1_bRL2_ _bRH1_bRH2_bSL_bSH_CRC_3 |
Запись в EEPROM 2 байта (до255): 0х46 |
2_ADDRSlave_ADDRMaster_ _0х46_aE1_aE2_bL1_bL2_ _bH1_bH2_CRC_3 |
------------------------------------ |
Чтение из EEPROM 2 байт (до255): 0х47 |
2_ADDRSlave_ADDRMaster_ _0х47_ aE1_aE2_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Обнуленные, не калиброванные отсчёты АЦП: 0х48 |
2_ADDRSlave_ADDRMaster_ _0х48_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Запись адреса КТУ: 0х49 |
2_ADDRSlave_ADDRMaster_ _0х49_ aEА1_aEА2_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Не преобразованные отсчёты АЦП: 0х4А |
2_ADDRSlave_ADDRMaster_ _0х4А_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Команда обнуления показаний массы КТУ: 0х4В |
2_ADDRSlave_ADDRMaster_ _0х4В_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Задание веса грузоприёмного устройства (ноль платформы): 0х4С |
2_ADDRSlave_ADDRMaster_ _0х4C_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Начало дозирования: 0х4D |
2_ADDRSlave_ADDRMaster_ _0х4D_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Стоп дозирования: 0х4E |
2_ADDRSlave_ADDRMaster_ _0х4E_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Чтение норм загруженных компонентов рецепта: 0х4F |
2_ADDRSlave_ADDRMaster_ _0х4F_ nB1_nB2_CRC_3 |
2_ADDRMaster_ADDRSlave_bL1_bL2_ _bH1_bH2_bSL_bSH_CRC_3 |
Выгрузка загруженной дозы: 0х50 |
2_ADDRSlave_ADDRMaster_ _0х50_ nС1_nС2_CRC_3 |
2_ADDRMaster_ADDRSlave_53_53_ _53_53_bSL_bSH_CRC_3 |
Запись пределов недосыпа: 0х51 |
2_ADDRSlave_ADDRMaster_ _0х51_nB1 _bD2_bL1_bL2_ _bH1_bH2_CRC_3 |
------------------------------------ |
Все команды можно разделить на команды управления, информационные и изменения параметров.
При посылке внешним устройством формат команд следующий:
2 - начало посылки
ADDRSlave - адрес назначения (SLAVE) может принимать значения (0,128,129).
ADDRMaster - адрес источника (MASTER) может принимать значения (0,131…160).
Command номер команды
aR1 - младшая тетрада младшего байта номера ячейки ОЗУ
aR2 - старшая тетрада младшего байта номера ячейки ОЗУ
aR3 - младшая тетрада старшего байта номера ячейки ОЗУ
aR4 - старшая тетрада старшего байта номера ячейки ОЗУ
aE1 - младшая тетрада номера байта при записи/чтении EEPROM
aE2 - старшая тетрада номера байта при записи/чтении EEPROM
bL1 - младшая тетрада младшего байта данных
bL2 - старшая тетрада младшего байта данных
bH1 - младшая тетрада старшего байта данных
bH2 - старшая тетрада старшего байта данных
aEА1 - младшая тетрада адреса КТУ
aEА2 - старшая тетрада адреса КТУ
nB1 - младшая тетрада номера загруженного компонента
nB2 - старшая тетрада номера загруженного компонента
1 - Первый загруженный компонент
2 - Второй загруженный компонент
3 - Третий загруженный компонент
4 - Четвёртый загруженный компонент
5 - Сумма загруженных компонентов
nС1 - младшая тетрада номера канала выгрузки
nС2 - старшая тетрада номера канала выгрузки
CRC - контрольная сумма
3 - конец посылки
Посылка контроллером:
2 - начало посылки
ADDR_Master адрес назначения (MASTER)
ADDR_Slave адрес источника (SLAVE)
bL1 - младшая тетрада младшего байта данных
bL2 - старшая тетрада младшего байта данных
bH1 - младшая тетрада старшего байта данных
bH2 - старшая тетрада старшего байта данных
bSL - младшая тетрада байта состояния
bSH - старшая тетрада байта состояния
bRL1 - младшая тетрада младшего байта данных
bRL2 - старшая тетрада младшего байта данных
bRH1 - младшая тетрада старшего байта данных
bRH2 - старшая тетрада старшего байта данных
CRC - контрольная сумма
3 - конец посылки
Все байты разбиты на тетрады с целью передачи информации по протоколу. Каждая тетрада складывается со значением 0х30. Хотя количество информации и увеличивается вдвое, однако, данный механизм удобен для целей отладки, поскольку в таблице символов ASCII по соответствующим позициям располагаются печатаемые символы.
Структура байта статуса состояния представлена на рисунке 1.
Рисунок 1 Байт статуса состояния
2.Ход работы
2.1.Переключить КОП (контроллер оператора) с помощью тумблера на интерфейс RS-232.
Внимание!!! Переключение производить только при выключенном контроллере!!!
2.2 Запустить на компьютере программу эмуляции KTU.sys
2.3 Настроить порт.
2.4 Настроить свойства программы(log-file).
2.5 Запустить нужное количество КТУ (до 8).
2.6 Открыть порт.
2.7 Настроить время дозирования.
2.8 Запустить дозирование.
2.9 По окончании дозирования открыть log-file и просмотреть список команд.
2.10 Проанализировать файл. Рассчитать CRC(контрольная сумма), проанализировать байт состояния.
2.11 Найти команды 0х42, 0х46,0х47,0х4D,0x4F,0x50.
2.12 Исходя из протокола обмена(см.таблицу),определить все параметры.
2.13 Сделать вывод
PAGE 4