Описание интерфейса терминала ВИП
Для передачи данных на компьютер с терминала предусмотрен выбор из двух стандартных последовательных асинхронных интерфейсов.
1. Интерфейс RS-232 (официальное название TIA/EIA-232-E) позволяет напрямую подключить один TCK-5 c COM-порту компьютера. Длина линии связи не должна превышать 15 метров. Схема подключения изображена на рис. 1.
рис.1
2. Интерфейс RS-485 (официальное название TIA/EIA-485-A) позволяет подключить к компьюте-ру через адаптер RS-232↔RS-485 до 32 терминалов. Длина линии связи (витая пара) может достигать 1200 м. Схема подключения изображена на рис 2. Сопротивление согласующих резисто-ров на концах линии связи должно быть равно волновому сопротивлению применяемой витой пары (обычно от 50 до 150 Ом). Отводы, соединяющие линию с устройствами, должны иметь минимальную длину.
рис.2
Программно протоколы работы обоих интерфейсов идентичны. Единственное отличие состоит в том, что при использовании RS-232 происходит обращение к устройству с сетевым адресом 0, а для RS-485 используются сетевые адреса устройств из интервала от 1 до 255 включительно.
Последовательный интерфейс использует следующие настройки:
Режим работы | полудуплексный |
Скорость передачи | 9600 бод |
Длина передачи | 8 бит |
Бит паритета | есть, дополняет байт до чётного числа единиц |
Число стоповых битов | 1 бит |
Управление потоком | нет |
Передача данных инициируется посылкой запроса ведомому устройству (ТСК-5) от ведущего устройства (компьютер). Передаче запроса должен предшествовать интервал молчания длительностью минимум 4 мс.
Запрос состоит из 4-х байт:
1. сетевой адрес ведомого устройства;
2. байт 055h — код функции запроса текущего веса;
3. два байта контрольной суммы CRC16.
Ведомое устройство принимает запрос, контролирует бит паритета для каждого байта данных, сравнивает присвоенный устройству сетевой адрес и адрес в запросе и вычисляет контрольную сумму CRC16.
Если хотя бы одно условие нарушено, то ответ не генерируется. При выполнении всех условий ведущий посылает ответ, состоящий из 8 байт:
1. сетевой адрес ведомого устройства;
2. три байта значения веса (первый байт – младший), целое число со знаком, отрицательные значения представлены в дополнительном коде, т.е. –1 = 0FFFFFFh.
3. байт служебной информации b1;
4. байт служебной информации b2;
5. два байта контрольной суммы CRC16.
Три младших бита b1.0, b1.1 и b1.2 байта b1 образуют целое число Dec. Значение Dec от 0 до 6 показывают количество десятичных знаков после запятой в показаниях индикатора, т.е. целое значение веса необходимо разделить на 10 в степени Dec.
Если Dec принимает значение равное 7, то это означает, что ТСК-5 не может передать текущее значение веса, например, ожидается стабилизация показаний для выполнения операции выборки массы тары. Прочие биты байтов b1 и b2 несут информацию о состоянии каждого из 9 светодиодов индикации (1, когда светится) согласно списку:
b1.6 – символ “–”, вес меньше нормы в режиме сортировке по массе;
b2.0 – символ “+”, вес больше нормы в режиме сортировке по массе;
b2.1 – символ “pcs”, единицы измерения – штуки;
b2.2 – символ “t”, единицы измерения – тонны;
b2.3 – символ “kg”, единицы измерения – килограммы;
b2.4 – символ “>0<”, отклонение показаний от нуля менее 0,25 e;
b2.5 – символ “~”, признак нестабильности показаний;
b2.6 – символ “Net”, на индикаторе масса нетто;
b2.7 – символ “=”, вес в пределах нормы в режиме сортировке по массе.
Контрольная сумма CRC16 определяется путём умножения информационного многочлена на X16 и вычисления остатка от деления на исходный многочлен X16+X12+X5+1 фиктивной переменной X по следую-щему алгоритму:
1. Пусть необходимо вычислить CRC16 пакета из нескольких байтов данных Di.
2. Обозначим два байта контрольной суммы соответственно B1 и B2.
3. Присвоим начальное значение B1 = B2 = 0FFh;
4. Для каждого байта данных Di выполним следующее:
• Произведём побитовую операцию “исключающее или” B1 = XOR(B1, Di).
• Восемь раз проделаем сдвиг слова B1B2 на 1 бит в сторону старшего бита B1 и производя побитовое “исключающее или” B1B2 = XOR(B1B2, 1021h) каждый раз, когда перед сдвигом старший бит B1 равняется 1.
5. Конечное значение B1 и B2 после обработки всех Di и есть сумма CRC16.
6. Добавим в конец пакета байты B1 и B2.
Для проверки алгоритма можно подсчитать контрольную сумму получившегося пакета с увеличившейся на 2 байта длиной. Сумма должна равняться 0, т.е. деление на многочлен X16+X12+X5+1 происходит без остатка. Для примера запрос ведущего устройства на посылку данных по RS-232 (сетевой адрес равен 0) имеет вид: 000h, 055h, 017h, 05Fh.
Выбор используемого интерфейса RS-232 или RS-485, а также настройка сетевого адреса устройства для RS-485 производится с помощью специальной сервисной программы Rschoose.exe.