Далеко не у всех весов CAS семейства SW имеется интерфейс, для подключения к компьютеру. Но внимательный пользователь может заметить, что с обратной стороны корпуса имеется отсек закрытый заглушкой. Который удивительным образом подходит для разъема DB9, что позволяет сделать вывод, что в определенном исполнении подключение к COM порту возможно. И это действительно так.
По дополнительному заказу весы могут поставляться с интерфейсом RS-232. С использованием этого интерфейса весы могут быть подключены к внешнему устройству - компьютеру или принтеру.
Документация на весы CAS
Но сейчас интересно немного другое. Если открыть сервисный мануал на эту линейку весов, то на схеме можно увидеть что интерфейс UART уже выведен на разъем J2. Но подключать напрямую к COM порту его нельзя, нужен переходник RS232 <-> UART.
Можно воспользоваться готовым модулем преобразователя на микросхеме HIN232, который обычно предлагается для доработки весов.
Этот вариант работоспособен, но мне не очень нравится тем, что весы не имеют штатного места для крепления платы. Плата довольно большая, приходится крепить ее подручными средствами, протягивать провода к обоим разъемам, все это не очень удобно. Потому соберем свой модуль на микросхеме MAX232. Обвязка без хитростей, по даташиту. Конденсаторы керамические, форм-фактора 0805.
Есть лишь одна особенность: на разъеме DB9F со стороны весов имеется перемычка между 5 и 7 выводом. Сделано это для возможности подключения как обычным интерфейсным кабелем прямого типа (2-2, 3-3, 5-5), так и кабелем с распиновкой для весов CAS.
Микросхема преобразователя MAX232 в корпусе QSOP-16, а значит плата получается маленькая. Да и располагается она непосредственно на разъеме, что избавляет нас от необходимости искать для нее место и как-то ее крепить.
Разбираем весы (для этого придется сорвать гарантийную пломбу и пломбу поверки), и удаляем острым ножом заглушку для разъема DB9F.
Разъем J2 UART расположен в верхнем левом углу платы.
Теперь необходимо установить преобразователь интерфейса и соединить его с основной платой.
На разъем J2 для питания выведено напряжение +3,3В, а по даташиту для микросхемы MAX232 рекомендуется напряжение не ниже 4,5В. Но в течение нескольких лет проверялись микросхемы абсолютно разных производителей, и выяснилось, что они без всяких сбоев работают при питании от 3,3В. Хоть это и противоречит технической документации. Вероятнее всего, дело в фиксированной низкой скорости обмена (9600 бод/с). Но если все же возникнут проблемы со связью, то на плате весов имеется стабилизатор на напряжение +5В, и можно подключиться к нему.
Если нет в наличии ответной части разъема J2, вполне допустимо припаять провода напрямую с обратной стороны платы. Для надежности можно закрепить их после пайки термоклеем.
Можно вернуть плату на место, закрепить все провода в штатных креплениях и собрать весы. Теперь наши весы имеют небольшое отличие от первоначального варианта - наконец-то их можно подключить к компьютеру.
Для проверки была написана простенькая программа, функционал которой заключается в том, чтобы подключаться к COM порту и запрашивать у весов значение веса. Впрочем, еще она умеет делать скриншоты окна программы, которые автоматически сохраняются в папку "Screenshots". Данная функция была реализована для подтверждения того, что проверка связи в нашем сервисном центре была проведена.
В меню "Подключение" выбираем нужный порт (отобразятся только доступные порты).
И если весы включены в сеть, подключены к COM порту и интерфейс исправен, то статус в нижнем правом углу поменяется на "Весы подключены" а цвет индикатора сменится на синий.
Можно установить на платформу груз, и убедиться что все прекрасно работает.
Схема, плата (DipTrace).
Программа для тестирования связи с весами CAS.
Протокол обмена: CAS AD. Модели весов: AD, AD-H, AP, EB, ED, ED-H, PB, PDI, DB, DB-H, DB-II, HB, HD, SW, SWN, PR (LCD), ER, ER-Jr, ERII.
А как CAS SW ІІ переключить режим ато через програму не проверается?
Добрый день.
Подскажите пожалуйста, одинаковые ли протоколы обмены данных у весов CAS ER-JR(RS232) и CAS PR(USB)?
Здравствуйте, Артём. У CAS ER-JR и CAS PR протокол один, да (протокол AD).
У кассового ПО заявлена поддержка весов ER-JR (RS232) , подключить весы PR (USB) не получилось. Это может быть связано с интерфейсом USB установленном в весы ( интерфейс CAS) или все же это какая-то недоработка со стороны кассового ПО?
Так сложно сказать, причины могут быть разные. Интерфейс-то в любом случае UART, просто в одном случае он получается из RS232, а в другом - из USB. Весы в диспетчере как COM порт определяются? В настройках весов включен режим "rS-PC"? Моей утилитой весы видятся?
Да, вашей утилитой вес определяется. В диспетчере как COM порт определяются. Режим работы весов пробовал разный, в том числе и rS-PC.
Тогда только в сторону кассового ПО копать. Весы ER-JR точно имеют протокол AD, и в моей утилите работают. Весы PR тоже имеют протокол AD, и как Вы сами проверили, в утилите тоже работают. Конечно можно было бы пойти от обратного, и попробовать подключить весы ER-JR к Вашему кассовому ПО, но это надо весы такие иметь в наличии. Будет странно, если они заработают. Весы в своей посылке модель не передают, так что ПО это определить точно не может. Тут что-то другое...
Большое Вам спасибо за исчерпывающие ответы. Отдельное спасибо за программу, позволяющую проверить весы.
Всегда пожалуйста, Артём. Если в дальнейшем возникнут вопросы, можете писать напрямую, на почту: public@enabledevice.ru
Здравствуйте. Подскажите, какой протокол обмена данных у cas pdi?
Здравствуйте, Никита. Судо по вот этому мануалу, протокол у них такой же как и у CAS SW. Моя программа работать должна.
Здравствуйте. Есть в наличии двое весов CAS ER JR с установленными: разъемом DB9 и перемычкой между контактами 5 и 7. При тестировании программой CASconnector весы подключаются, но вес не показывают. Подскажите, пожалуйста, в чем может быть проблема?
Здравствуйте, Александр. Ну вообще работать должно. Судя по мануалу, у этих весов протокол обмена именно AD. А дальше разбираться нужно. Кабель точно прямой, 2-2, 3-3, 5-5 (5-7)?
Здравствуйте.
Спасибо за программу, она работает с весами M-ER 328 C-15.2.
Подключил весы через хороший адаптер USB-Com.
1. С какой частотой программа опрашивает весы? 5 раз в секунду? Окно программы часто моргает.
2. Все-таки можете ли Вы добавить чтобы программа писала 1 раз в секунду данные в файл чтобы можно было его импортировать в Excel для построения графика?
Можно просто сделать чтобы данные писались в файл txt с разделением информации пробелом или табуляцией: дата, время, вес.
Например так: 05.01.22 пробел 18:52:30 пробел 12,234 (чтобы десятые отделяла запятая).
И сделать чтобы был выбор частоты записи, можно в секундах: от 1 до 360 000.
Как Вам? Возможно?
Здравствуйте, Сергей. Опрос весов выполняется в параллельном потоке, без каких-либо задержек. При этом окно моргать в принципе не должно, но это уже от многих аппаратных факторов зависит. Касаемо переделки программы: Вы же понимаете, что это уже совершенно другой софт получится. Нужно время, нужны как минимум весы для проверки... Я никогда не берусь за разработку вслепую, ничего хорошего из этого не получается. Может быть, когда-нибудь, я за это и возьмусь. Но сейчас явно не то время.
какой сигналь отправлять по com порту к весам ?
Здравствуйте, Назар. А это зависит от того, какой результат Вы хотите получить.
Добрый день, покажите пожалуйста какой посылкой Вы читаете значение весов и как отправляете команду на тарирование (из чего состоит посылка). Спасибо
Здравствуйте, Павел.
На самом деле всё очень просто.
0. Скорость обмена данными: 9600 бит/с; Бит данных: 8; Стоповых бит: 1; Четность: нет; Формат данных: ASCII.
1. Посылаем на весы команду "ENQ" (0x05)
2. Если всё в порядке, то весы отвечают "ACK" (0x06)
3. В течение трех секунд мы должны послать "DC1" (0x11)
4. В результате весы отдадут посылку из 15 байт
Вот в ней и статус весов, и значение веса и единицы измерения... Остается только распарсить нужное. 🙂 Я на почту Вам отправил мануал весов, там чуть подробнее об этом.
Добрый день.
Подскажите пожалуйста где посмотреть список команд и параметры ответов опроса весов CAS DB-II по RS232. (РЭ какое то скромное в этом направлении)
Спасибо.
Здравствуйте, Андрей.
Вообще да, даже в сервисных мануалах нет никакого упоминания о протоколе связи. Только стандартная схема подключения (2-3, 3-2, 5-7). Но если верить CAS, то и у этих весов протокол AD. Следовательно, моя программа тоже должна с ними работать. Попробуйте подключиться. Если заработает, тогда сразу всё станет понятно.
ОГРОМНОЕ СПАСИБО за программу !
Пожалуйста, Сергей. Рад что пригодилась. 🙂
Доброго времени суток!
Подскажите пожалуйста, возможно ли воспользоваться Web Serial Api для передачи команды в COM порт для того, чтобы забрать в ответном сообщении значение веса и передать это значение на фрон страницы браузера?
Здравствуйте, Александр.
С этим API я дел не имел, но в первом приближении проблем не вижу. По сути своей, этот интерфейс просто получает доступ к портам, позволяя с ними работать. Так что проблем быть не должно. Тем более, что протокол у весов очень простой. Вообще идея интересная.
Добрый день!
Подскажите пожалуйста на каком языке написана программка CASConnector?
Есть ли примеры с исходным кодом на github или где-то еще?
Пробовал писать на Python скрипт для подключения к весам CAS AD-25 по RS-232, не получается правильно отправлять инициирующую команду, чтобы забрать данные о весе.
Здравствуйте, Александр!
Сие творение было создано в весьма специфической среде, так что особого смысла в исходниках нет. Да и не нужно это, на самом деле, так как протокол обмена невероятно прост. Я могу порекомендовать Вам немного другой подход. Запустите совершенно любой терминальный софт. Вообще без разницы, что это будет. Например, Terminal 1.9b. Настройте параметры подключения. Скорость обмена данными: 9600 бит/с; Бит данных: 8; Стоповых бит: 1; Четность: нет; Формат данных: ASCII. Подключитесь к порту (естественно, подключив весы физически перед этим). Отправьте весам 0x05. Если весы исправны, кабель спаян правильно и протокол у весов соответствующий, то весы должны ответить 0x06. Не ответили? Ну так и дальнейшее не имеет смысла, нужно причину искать. Ответили? Замечательно! В течение трех секунд пуляем 0x11 и в ответ получаем 15 байт. Вот там и значение веса содержится, и всякое такое. А уж выдернуть нужное не составляет никакого труда. Всё, осталось повторить уже в своём софте.
Добрый день!Такая проблема,При подключение весового индикатора CL-5010Aчерез интерфейса RS-232 к выключенному компьютеру табло индикатора начинает мигать(показывает то 20 кг то 0 кг).При включение компьютера программа для весов не подключается к индикатору весов.На штекерах кабеля выводы подключенный как вы писали.В чем может быть проблема?
Здравствуйте, Игорь. А у весового индикатора точно протокол обмена AD? Надо мануал посмотреть...
UPD. Посмотрел, у CI-5010A совершенно другой формат данных при обмене по RS232. Потому, моя программа для этого индикатора в принципе не подходит.
Добрый день!Протокол обмена AD.Скачал вашу программу тестирования и показывает что весы не подключенный.И еще такая странность происходит-при выключенном компьютере если отсоединить шнур от штекера компьютера и приложить конец шнура к корпусу компьютера индикатор тоже начинает мигать.Индикатор отдельно заземлен.
Добрый день.
Если посмотреть мануал весоизмерительного модуля CI-5010A, то в соответствующем разделе можно увидеть, что сообщение от весов по интерфейсу RS232 состоит из 22 байт. В то же время весы CAS SW (и им подобные по протоколу) отдают по запросу 15 байт. Уже по этой причине программа в принципе не подходит, так как она разбирает на составляющие именно посылку из 15 байт. В статусной строке статус "Весы не подключены" появляется тогда, когда программа шлет запрос, а в ответ ничего не получает. Касаемо же мигания индикатора - это уже дело потенциалов на корпусе ПК, заземлений и тому подобных вещей. Это не странность, это обычная история при определенных обстоятельствах. Такая же, например, как удар током при одновременном касании корпуса ПК и батареи отопления.
Спасибо!
Премного Благодарен за подробную статью и за программу для проверки связи! Лайк так сказать!
Рад что оказался полезным. Вам спасибо за отзыв. 🙂
Заказал с али подобный преобразователь на MAX3232, всё заработало, но не сразу. Пока не поменял местами Rx и Tx. И пришлось на схеме допаять перемычку между 5 и 7 контактом ком порта. А так спасибо большое за статью!
Тут даже нашим маленьким китайческим друзьям неведомо, что у них на переходниках написано, потому только методом проб действовать. 🙂 А про перемычку в статье сказано, да. Это именно инициатива CAS.
"Есть лишь одна особенность: на разъеме DB9F со стороны весов имеется перемычка между 5 и 7 выводом."
Рад, что статья оказалась полезной.
Вот еще вопрос, никак нельзя переделать весы SW-02 до SW-05 или 10? Почему спрашиваю, потому что при калибровке весы "видят" и определяют адекватно 5кг веса, хотя у моих (SW-02) максимальная нагрузка 2кг. Внешне внутренности идентичные как и в ваших весах... Если они ком порт уже можно сказать сделали, и продают на 2-3 тысячи дороже) может и максимальный вес можно увеличить?
Если датчик на 5 кг, то в настройках выставить 5 кг и перекалибровать весы.
а можно перемычку запаять на шнуре ну или как-то соединить в самом шнуре? У меня нет возможно снять пломбу и сделать такую переделку. Что если я возьму шнур и кину перемычку в самом шнуре между 5 и 7 контактом? Или это не сработает? Хочу соединить весы CAS ER и Эвотор без переходника. Переходник 2-3-5 на 2-3-7 работает все вместе. Ищю как избавиться от этого переходника. Не хочу. Если бы мог влезть в весы, я бы это сделал. Можно ли в кабель внести модификацию? Кабель с чипом prolific 2303TA.
Да конечно можно. Такая уж особенность у этих весов, что интерфейсная "земля" выведена на 7 пин а не на 5, как того требует RS232.
Ага то есть, нужна земля с 7 на 5. То есть земля у весов на 7 выведена. А у шнура на 5. И нужен этот джампер. Ага. Так.
В том и дело. Разработчики весов CAS решили, что жизнь скучна и однообразна, и вывели интерфейс на пины 2(Rx)-3(Tx)-7(GND). Потому для подключения и нужен кабель 2-2, 3-3, 5-7. То бишь, со стороны ПК земля на обычном 5 пине, а со стороны весов она уже на 7. Но! Этого им показалось мало, и встречаются весы, где земля у весов на стандартном 5 пине. 🙂 Потому при изготовлении интерфейсных кабелей мы всегда устанавливали перемычку 5-7 со стороны весов, чтобы этот кабель гарантированно работал со всеми весами. В Вашем же случае имейте ввиду, что такой кабель будет предназначен именно для весов, потому что у 7 пина есть тоже свое назначение, туда выведен аппаратный контроль передачи данных RTS (Request to Send). И если он используется в других устройствах, то никаких замыканий с землей там быть не должно.
2-TXD, - вопросов нет
3-RXD - здесь тоже вопросов нет
5-СTS - допустим?
7-GND - так?
8-RTS - и сюда?
с такой распиновкой заработает? Куда эти CTS и RTS деть?
Вам не нужно никуда девать CTS и RTS, они в подключении не участвуют. Смотрите, всё просто: на весах задействованы выводы 2, 3 и 7. А на штекере кабеля используются выводы 2, 3 и 5. Потому соединяем 2 - 2, 3 - 3 а 5 вывод кабеля нужно соединить с выводом 7 на разъеме весов. Вот таблица из мануала весов: