весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Уважаемые коллеги. Используем весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 т.к. старый драйвер в Win 8.1 не работает. Новый драйвер для 7.7 не предназначен. Весы подключены через шнур COM - USB. Работа из 1С с COM портом осуществляется через компоненту (dll) написанную на Delphi 7. Проблема в том, что не всегда в 1С возвращается отклик от весов. При том, что цена на весы отправляется. Систематику выявить не получается. Все может работать нормально и в течение рабочего дня. Может полдня работать. Может совсем не работать.
Код в 1С упрощенно выглядит так:
rs232.ЗаписатьСтроку("02 00 05 03 02 02 00");
rs232.ЗаписатьСтроку("03");
Между строками ставил задержку 0,1с.
В чем может быть проблема? Увеличить задержку или с таймаутом на порту эксперементировать?
Спасибо.
Код в 1С упрощенно выглядит так:
rs232.ЗаписатьСтроку("02 00 05 03 02 02 00");
rs232.ЗаписатьСтроку("03");
Между строками ставил задержку 0,1с.
В чем может быть проблема? Увеличить задержку или с таймаутом на порту эксперементировать?
Спасибо.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
У меня вроде работало всё без дополнительных таймаутов и задержек. Может быть дело в переходнике? Если есть возможность - попробуйте с другим переходником
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Спасибо за рекомендацию. Попробуем. Если есть такая возможность опишите Вашу конфигурацию (какая операционка, версия 1с) и технологию подключения (какой провод, переходник, прошивка весов, через какую компоненту отправляете команды из 1с). Я на этот вопрос довольно много времени потратил пока более-менее рабочий вариант получился.slan писал(а):У меня вроде работало всё без дополнительных таймаутов и задержек. Может быть дело в переходнике? Если есть возможность - попробуйте с другим переходником
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Я тестировал драйвер, который для 1с 8. (собственно говоря я его разработчик)
Тестировал без 1с, через самописное приложение. Весы подключал напрямую в ком-порт (стоит мультипортовка в системнике). Операционка была win7-64 на тот момент. Прошивку к весам к сожалению не вспомню, давно это было.
Тестировал без 1с, через самописное приложение. Весы подключал напрямую в ком-порт (стоит мультипортовка в системнике). Операционка была win7-64 на тот момент. Прошивку к весам к сожалению не вспомню, давно это было.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Спасибо за ответ. Более склоняемся к тому, чтобы снести Вин 8.1 и установить 7. На ней тестировалось и подобного явления не наблюдалось.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Работа с ком-портом в драйвере для весов (который для 1с 8), идентична работе с ком-портом в драйвере 2.х для фискального регистратора. А драйвер для фискального регистратора постоянно обновляется и тестируется, в том числе и на win 8, 8.1, 10.
Так что не думаю, что как-то влияет версия windows. Хотя возможно драйвер для вашего переходника usb->com работает корректно только под какой-то определенной версией windows.
p.s. если сильно хотите, могу немного адаптировать драйвер для весов под 1с7, там ведь насколько я знаю проблема в отсутствии поддержки out-параметров в методах и safearray?
Так что не думаю, что как-то влияет версия windows. Хотя возможно драйвер для вашего переходника usb->com работает корректно только под какой-то определенной версией windows.
p.s. если сильно хотите, могу немного адаптировать драйвер для весов под 1с7, там ведь насколько я знаю проблема в отсутствии поддержки out-параметров в методах и safearray?
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Сильно хочу. Проблема именно в этом. Я перебрал с десяток компонент в т.ч. которые оборачивают данные из 7.7 в safearray чтобы работать с текущим драйвером, выложенном на этом форуме. Безрезультатно. Поскольку разработчики не планировали, чтобы драйвер работал с 7.7, стал искать способы самостоятельно. Сначала сделал dll на VFP чтобы просто понять возможно ли преобразовывать данные из 7.7 в safearray. Результат был положительный. Получилось взаимодействовать с последним драйвером через промежуточное преобразование. Но там возник целый ряд проблем с получением данных от 7.7 и установить готовую dll от VFP на другую машину тоже не очень просто. Решил готовое поискать. Компонент, разработчики которых, декларируют то что мне нужно масса. Но из того что нашел ничего не заработало нормально. Решил уже напрямую с портом работать. Перепробовал тоже не одну компоненту и не на одном языке. Подошла одна и то пришлось разворачивать Delphi т.к. параметры порта зашиты в коде. Разбираться как туда передавать нужные величины уже не было ни времени ни сил. Подобрал какие нужно(не с первого раза) и откомпелировал. Заработало! Но радость не долгой была. Когда на рабочую машину поставил с вин 8.1... Возможно и проблема в драйвере переходника. При установке бал глюк. Но уже не помню чего.. Подумал, что показалось и внимания особого не обратил. Вкратце примерно такая история.slan писал(а):p.s. если сильно хотите, могу немного адаптировать драйвер для весов под 1с7, там ведь насколько я знаю проблема в отсутствии поддержки out-параметров в методах и safearray?
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
После праздников тогда займусь. Добавлю алиас для метода Подключить, вместо safearray у него будет в параметрах порт и скорость.
И добавлю свойство Вес, которые будет заполняться после вызова метода ПолучитьВес, вы же сможете вызвать этот метод с out-параметром? (я так понимаю значение не установится этого параметра, поэтому добавлю свойство)
И добавлю свойство Вес, которые будет заполняться после вызова метода ПолучитьВес, вы же сможете вызвать этот метод с out-параметром? (я так понимаю значение не установится этого параметра, поэтому добавлю свойство)
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Да, конечно, смогу вызвать метод с параметром. Так и было при работе со старой версией драйвера. Очень буду ждать новостей от Вас по этому поводу.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
То есть, метод с out-параметром из 1с 7 в принципе вызвать можно, однако значение этого параметра получить не удастся, правильно?
Я плохо знаком с 1с, отсюда и столько вопросов.
Я плохо знаком с 1с, отсюда и столько вопросов.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Вот ка это выглядело со старым драйвером:
OLE = CreateObject("MerkScalesDrv.arMaxMerkScalesDrvS");
OLE.Open(ПортВесов);
КолГрамм = OLE.Process(КолГрамм);
Методом Open открываем порт передавая туда только его название в переменной ПортВесов (напр. "COM1")
С настоящим драйвером:
OLE = CreateObject("MercuryCom.M315Drv1C");
Массив[1]=4; (Это номер порта)
Массив[2]=4800; (скорость)
И на этом все. т.к. Массив то вроде в 1С 7.7. есть но не safearray.
и при вызове OLE.Open(Массив[]); В разных вариантах ругается либо 1С либо драйвер.
т.е. до вызова метода GetWeight дело не доходит.
OLE = CreateObject("MerkScalesDrv.arMaxMerkScalesDrvS");
OLE.Open(ПортВесов);
КолГрамм = OLE.Process(КолГрамм);
Методом Open открываем порт передавая туда только его название в переменной ПортВесов (напр. "COM1")
С настоящим драйвером:
OLE = CreateObject("MercuryCom.M315Drv1C");
Массив[1]=4; (Это номер порта)
Массив[2]=4800; (скорость)
И на этом все. т.к. Массив то вроде в 1С 7.7. есть но не safearray.
и при вызове OLE.Open(Массив[]); В разных вариантах ругается либо 1С либо драйвер.
т.е. до вызова метода GetWeight дело не доходит.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Добавил методы ПодключитьСПараметрами и ТестУстройстваСПараметрами, тестируйте
- Вложения
-
- MercuryScaleDrv.exe
- (1.32 МБ) 400 скачиваний
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Порт открывается. Но при попытке вызвать метод ПослатьЦену или ПолучитьВес возвращается ошибка 256. т.е DeviceID у меня не верный. При вызове OpenWithParams присваивал DeviceID="" пробовал также со значениями "0" и "1". Порт с этими значениями открывается но вышеуказанные методы возвращают ошибку. Не нашел где DeviceID устанавливается или как его можно получить.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
DeviceID возвращается out-параметром методом Подключить (ну или ПодключитьСПараметрами)
Видимо из 1с 7 всё же нельзя получить значение out-параметра. Верну в свойство
Видимо из 1с 7 всё же нельзя получить значение out-параметра. Верну в свойство
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Внутри 1С 7.7 переменные передаются как по ссылке так и по значению. Как со внешними компонентами не нашел информации. Полагал, что и со внешними так же. Все с кем удалось посоветоваться работают с внешней компонентой через ее свойства. Скорее всего не передает 1с 7.7 во внешнюю компоненту переменную по ссылке.
Сейчас буду тестировать версию 1.3.0.
Сейчас буду тестировать версию 1.3.0.
Re: весы Меркурий 315 в 1С Торговля и склад 7.7 через RS232 не всегда возвращают данные
Добрый день! Хочу поблагодарить Вас за проделанную работу. Только сейчас проблему решили до конца. Чип переходника не был предназначен для работы с вин 8.1. Поэтому периодически USB "отсыхал". Лечились переподключением. Купили нужный переходник теперь работает нормально.
Когда устанавливал Ваш драйвер сначала установил "по верху". Некоторые методы не отрабатывали нормально. Не сразу додумался снести и установить заново. Также русские алеасы методов у меня не работали. Заменил все английскими и все ок. Выражаю Вам глубокую благодарность за то, что не остались равнодушны к моим злоключениям. Думаю, что я не единственный кто подключает данные весы в подобной конфигурации к 7.7. Поэтому думаю, можно Вас поблагодарить и от их лица поскольку они уже избавлены от проблем постигших меня(писать свои драйвера и т.п.) хотя наверное, знать об этом не будут.
Всего Вам наилучшего!
Когда устанавливал Ваш драйвер сначала установил "по верху". Некоторые методы не отрабатывали нормально. Не сразу додумался снести и установить заново. Также русские алеасы методов у меня не работали. Заменил все английскими и все ок. Выражаю Вам глубокую благодарность за то, что не остались равнодушны к моим злоключениям. Думаю, что я не единственный кто подключает данные весы в подобной конфигурации к 7.7. Поэтому думаю, можно Вас поблагодарить и от их лица поскольку они уже избавлены от проблем постигших меня(писать свои драйвера и т.п.) хотя наверное, знать об этом не будут.
Всего Вам наилучшего!