Кроссплатформенный APScale для весов CAS

14.11.25

Интеграция - Весы

Как сделать кросс платформенный Apscale для весов CAS своими руками.

Встала задача перейти постепенно установить ОС Mint на всех компьютерах завода. У нас есть упаковочные столы на которых готовая продукция перед отправкой, заворачивается в бумагу и взвешивается. Так сложилось, что стояли весовые терминалы Cas и драйвер APScale, который можно свободной найти в интернете под Windows. Поставляется без исходных кодов и запустить драйвер под linux нет возможности.

Apscale.dll отправлял на весы команду, а затем принимал ответ из весов. Инструкцию по протоколу обмена я нашёл, но к сожалению он не заработал. 
На помощь пришёл перехватчик данных SERIAL PORT MONITOR. В демо режиме он позволяет перехватить до 15 кБайт данных, для данной задачи вполне достаточно.

В результате исследований, пришлось дописать метод для получения одного байта, и отправки одного байта. При отправке необходимо написать номер символа в кодировке ANSI. Также у метода получить строку, можно указать параметр, символ-окончания строки.

Все изменения есть в репозитории,  SorcecraftGitHub


&НаКлиенте
Процедура ЗапроситьВесУВесовCAS()
      
    ОчиститьСообщения();
    МояКомпонента = Новый("AddIn.ВнешняяКомпонента.ComPortTools");    
    Если ЭтоПолноправныйПользователь Тогда
        Сообщить(СтрШаблон("%1 %2 %3 %4 %5 %6 %7", Число(НомерCOMПортаВесов),Число(Формат(СкоростьПодключенияКВесам,"ЧГ=")),БитыДанных,БитЧетности,СтоповыеБиты,Таймаут, НазваниеLinuxПорта));
    КонецЕсли;
    МояКомпонента.ИнициализироватьПорт(Число(НомерCOMПортаВесов),Число(Формат(СкоростьПодключенияКВесам,"ЧГ=")),БитыДанных,БитЧетности,СтоповыеБиты,Таймаут, НазваниеLinuxПорта);
    МояКомпонента.ОчиститьВходИВыходПорта();
    МояКомпонента.ОтправитьСтроку(Символ(5)); 
    БайтДанных = МояКомпонента.ПолучитьБайт();
    Если БайтДанных <> 6 Тогда        
        МояКомпонента.ИнициализироватьПорт(Число(НомерCOMПортаВесов),Число(Формат(СкоростьПодключенияКВесам,"ЧГ=")),БитыДанных,БитЧетности,СтоповыеБиты,Таймаут, НазваниеLinuxПорта); 
        МояКомпонента.ОтправитьСтроку(Символ(5));
        БайтДанных = МояКомпонента.ПолучитьБайт(); 
        Если БайтДанных = 0 Тогда 
        Сообщить(НСтр("ru = 'Весы не ответили вовремя. Попробуйте запросить вес ещё раз.'"));
        КонецЕсли;
    КонецЕсли;                                  
    МояКомпонента.ОтправитьСтроку(Символ(18));
    Результат = МояКомпонента.ПолучитьСтроку(4);

    Если Результат = "timeout" ИЛИ ПустаяСтрока(Результат) Тогда
        ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Данные с весов не получены. Возможно не правильно настроен порт.'; 
        |en = 'No data has been received from libra. The port may not be configured correctly.'"));
        Возврат;
    Иначе  
        Если СтрНайти(Результат, "kgf") <> 0  Тогда
            ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Вес нестабильный. Проведите взвешивание ещё раз.'
                        |;en = 'The weight is unstable. Do the weigh-in again.'"));
            Возврат;                                                 
        Иначе
            Количество = НайтиВес(Результат); 
       КонецЕсли;        
    КонецЕсли;

КонецПроцедуры

По остальному оборудованию проблем не возникло, на принтер чеков мы установили драйвер с официального сайта, в 1с подключен как обычный принтер, пришлось повозиться с настройками размера бумаги, чтобы этикетка выходила ровно.  Драйвер сканеров штрихкодов шёл из коробки в самой 1с, на Linux установился без проблем.

Возможно, данная статья поможет подключить свое устройство COM на других платформах.

---

Картинка для публикации сгенерирована в GigaChat с помощью Kandinsky

Вступайте в нашу телеграмм-группу Инфостарт

внешние компоненты

См. также

Весы Системный администратор Программист 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием Платные (руб)

Данная обработка позволяет настроить обмен с весами с печатью этикеток ШТРИХ-М серии PC-200 и 1С:Управление торговлей редакция 10. Может быть использована в 1С: Управление производственным предприятием 1.3 ,1С: Комплексная автоматизация 1.1, 1С: Розница 1.х. Универсальная обработка выгрузки номенклатуры для 1С:Розница редакция 2.3 использует типовой функционал "Правила обмена с подключаемым оборудованием offline" Обработка обслуживания весов с печатью этикеток ШТРИХ-М серии PC-200  для ДАЛИОН: Управление магазином 1.2.х Обработка выгрузки данных в весы с печатью этикеток ШТРИХ-М серии PC-200  для Штрих-М: Торговое предприятие 5.2.х Универсальная обработка выгрузки номенклатуры для 1С:Управление торговлей редакция 11 использует типовой функционал "Правила обмена с подключаемым оборудованием offline" Обработка обслуживания весов с печатью этикеток ШТРИХ-М серии PC-200  для ДАЛИОН: ТРЕНД, редакция 3.0

7800 руб.

04.12.2019    24049    82    40    

79

Весы Оптовая торговля Розничная торговля Системный администратор Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Драйвер электронных весов предназначен для подключения торговых весов фирмы CAS всех моделей, а также весов АТОЛ MARTA к различным конфигурациям 32-разрядной или 64-разрядной платформы 1С v.8.3. Драйвер разработан по стандарту "1С: Совместимо". Уникальность драйвера заключается в том, что он прост в подключении, надежен в работе и оптимален по цене.

3000 руб.

19.12.2017    72591    427    134    

157

Печатные формы Весы Пользователь 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

При печати кодов товаров (обмен с весами) данные сортируются по наименованию товаров, а не по коду PLU.

1 стартмани

16.02.2025    1192    0    Darya1cbit    0    

0

Весы Пользователь 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

Обработка для работы с весами в программе Далион, которая использует бесплатный драйвер МАССА-К Driver-R.

3 стартмани

31.10.2024    1351    3    Lichi001    4    

3

Весы Программист Пользователь 1С v8.3 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Предлагается пример создания рабочего файла, который понимает загрузчик loader для весов с печатью этикеток "Штрих-Принт".

3 стартмани

16.09.2024    1626    6    aximo    1    

3
Для отправки сообщения требуется регистрация/авторизация