Внешняя компонента создавалась для работы с терминалами типа А и RA, вполне вероятно, будет работать и с другими терминалами масса-К.
Получает показания весов в любой момент времени, также можно подключить выдачу внешнего события при окончании взвешивания (при звуковом сигнале весов).
Получает показания весов в любой момент времени, также можно подключить выдачу внешнего события при окончании взвешивания (при звуковом сигнале весов).
Подключение весов:
ПодключитьВнешнююКомпоненту(ПутьКФайлам+"MassaKNativeAPI.dll", "MassaKNativeAPI", AddInType.Native);
Весы = Новый("AddIn.MassaKNativeAPI.ExecExtention");
Весы.НомерПорта =ВесыПорт; //тип: число; "1" соответсвует СОМ1
Весы.СкоростьПорта = ВесыСкоростьПередачи; //тип: число; как правило 4800
Весы.Четность = ВесыЧетность; //тип: число; "1" или "2"
Весы.СтоповыеБиты = ВесыСтоповыеБиты; //тип: число; как правило "0"
Весы.ЗадержкаПроверкиПорта = ЗадержкаПроверкиПорта; //тип: число; период проверки порта на окончание взвешивания и выдачи сообщения во внешнее событие
Весы.ОткрытьПорт();
Получение веса в любой момент времени:
ТекВесСтр = Весы.ПолучитьВес() //тип: строка
Организация выдачи результата во внешнее событие:
Весы.ЗапуститьСообытиеВеса();
Весы.ОстановитьСообытиеВеса();
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Событие = "ПолученВес" Тогда
ТекВесСтр = СтрЗаменить(Данные,",","."); //тип: строка
КонецЕсли;
КонецПроцедуры
К Massa-K подходили стандартные дрова, сейчас непомню какие, но я делал на основание ее обработку для розницы 2.0.
Стандартные подходят, но не всегда удобно с ними работать, подробно я со стандартными не разбирался, но нужного мне режима работы драйверов не нашел. Я писал под задачу где важна скорость и точность выдачи результата при окончании взвешивания, для чекования продукции, функционал аппаратов bizerba, где каждая доля секунды дорога. 1C-ка может работать с обработчиком ожидания не менее 1сек, а здесь выдача результата веса при окончании взвешивания, т.е. дрова сами анализируют положили на платформу новый кусок или еще не убрали старый.
Massa-K МК-15.2-ТН21 — не взлетело с этой dll
у них она в оригинале почти 18 мб весит (с ней работает)
Странно что не взлетело, протоколы и команды идентичны, параметры порта сходные.
Юрий может быть на весах не выставлен протокол обмена №2?
Оригинальные дрова на протоколе «1С» обычно заводятся.
(3) У меня тоже не работает с Massa-K МК-15.2-А11, можно ссылку на библиотеку?
Есть пример работающий?
Вес всегда = 0.
(5) Геннадий протокол на весах №2 выставлен? И каким методом пользуетесь ПолучитьВес() или через ВнешнееСобытие?
При использовании ВнешнегоСобытия параметр ЗадержкаПроверкиПорта указывается милисекундах, я обычно ставил от 100 до 500, т.е. от 0,1 сек до 0,5сек
Протокол стоял не тот. ВнешнееСобытие работает, а ПолучитьВес() нет.
(8) При запущенной функции ЗапуститьСообытиеВеса() не работает ПолучитьВес(), т.к. событие очень плотно опрашивает весы и разовое получитьВес может просто подвесить контроллер весов. Необходимо или не запускать событие или выполнить функцию ОстановитьСообытиеВеса().
А будет ли работать в 8.1?
(10) NativeAPI появилась в версиях 8.2, в 8.1 использовалась СОМ технология. Я отрабатывал компоненту на 8.3, о 8.1 даже и не думал 🙂
(11) Жаль. Имеем очень кастомизированную конфу на 8.1 и зоопарк массакашных весов. Штатная библиотека из состава драйверов масса-к не дает задавать скорость порта и соответственно не работает с некоторыми видами весов 🙁
(12) как вариант поставьте платформу 8.3 или 8.2 в режим совместимости с 8.1 или могу предложить компоненту с COM технологией. Она работает без функций внешнего события но в остальном она схожа с выложенной, можно задавать и параметры порта и получать при запросе состояние значения весов. Если интересно пишите a-kulyashov@1key.spb.ru договоримся 🙂