Вот функция считывания данных веса
Функция Вес(Объект, Вес) Экспорт
Перем мТаймаут, мДлина, мДанные, мРезультат, мНачало, мБуфер, мТаут;
Результат = мНетОшибки;
Если Объект.Драйвер.PortOpen = 1 Тогда
мТаймаут = 2;
мДлина = 0;
мДанные = "";
мРезультат = Ложь;
Объект.Драйвер.Output = Символ(00)+Символ(00)+Символ(00)+Символ(03);
мНачало = ТекущаяДата();
Пока Истина Цикл
Если Объект.Драйвер.InBufferCount>0 Тогда
мНачало = ТекущаяДата();
мБуфер = Объект.Драйвер.Input;
Сообщить("мБуфер="+мБуфер);
мДанные = мДанные + мБуфер;
мДлина = мДлина + СтрДлина(мБуфер);
КонецЕсли;
Если мДлина>=18 Тогда мРезультат = Истина;
Прервать;
КонецЕсли;
мТаут = (ТекущаяДата()-мНачало);
Если мТаут>=мТаймаут Тогда
мРезультат = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если мРезультат Тогда
мБуфер = Сред(мДанные,1,6);
мДлина = СтрДлина(мБуфер);
мДанные = "";
Пока мДлина>0 Цикл
мДанные = мДанные + Сред(мБуфер,мДлина,1);
мДлина = мДлина - 1;
КонецЦикла;
Попытка
мДлина = Число(мДанные);
Исключение
мДлина = 0;
КонецПопытки;
Вес = мДлина/1000;
Иначе
Результат = мОшибкаНеизвестно;
Объект.ОписаниеОшибки = "Таймаут устройства";
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции // Вес()
Аналогично комманду тарирования
Объект.Драйвер.Output = Символ(00)+Символ(00)+Символ(00)+Символ(02);
тоже отрабатывает(весы переключаются в режим "Тара" и устанавливают нулевой вес), т.е. запись комманды в порт проходит.
А вот при после комманды запись нужной информации не проходит, почему, непойму. Как-бы весы ждут чего-то ещё, или неправильно передаю.
Цитата(mact @ 26.01.15, 22:01)
Аналогично комманду тарирования
Объект.Драйвер.Output = Символ(00)+Символ(00)+Символ(00)+Символ(02);
Сорри, не туда вставил, тарирование это
Объект.Драйвер.Output = Символ(00)+Символ(00)+Символ(00)+Символ(01);