This is topic Подключение сканера штрих кода Metrologic IS3480 Quantum in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Задача: Осуществить вывод сканированного штрих кода на Экран в десятичной системе исчисления с указанием даты и времени сканирования. Проблема: При сканировании штрих кода значения в текстовые поля не выводятся.
Среда разработки Trace Mode 6 v 6.09 Базовая беспл. версия. Сканер подключен c помощью USB-Com переходника На примере видеоурока по созданию драйвера к SCADA TRACE MODE без программирования http://www.adastra.ru/products/drivers/drv_noprogram/ были созданы компоненты: 2 канала CALL “Штрих код” и “Дата и время” с типом вызова Vector, но есть большое предположение, что нужен другой тип вызова. UnuversalPLC_type4 (Источники/приемники — Пользовательские драйверы — TYPE11) для сканера. Com-порт (Система — Rtm_1) c Назначением — Card/Bar Reader. 2 аргумента с типами данных Real и Date_And_ Time
Сейчас пришел к предположению, что канал CALL для время и дата не нужен т. к. данные должны «сниматься» с компьютера.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
При назначении COM-порта "Card/Bar Reader" вызывается соответствующий встроенный драйвер (см."Чтение штрих-кодов и магнитных носителей"). В таком случае использование канала VECTOR необоснованно.
Posted by Ave Oleg (Участник № / Member № 6246) on :
Можно ли обойтись без написания программного кода в строке "Дополнительно", встроенного драйвера TYPE11-UniversalPLC_type4_1 ?
Posted by Ave Oleg (Участник № / Member № 6246) on :
При сканировании штрих-кода у нас выходит ошибка при следующих параметрах:
Имя события проблемы: APPCRASH Имя модуля с ошибкой: dllRTM32.dll Код исключения: c0000005
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В разделе "Чтение штрих-кодов и магнитных носителей" ничего не говорится о записи в строку "Дополнительно".
Posted by Ave Oleg (Участник № / Member № 6246) on :
Спасибо за помощь.
Преобразование считанного штрих кода в число получилось не через канал CALL, а через канал Float, просто перетаскиванием источника в каналы модуля RTM1. С помощью Drag-n-Drop перетащили канал в поле аргументов экрана со значением атрибута 47 - MF (iDSTR) и далее привязали его к текстовому объекту "Текст". Получили штрих код в 10-тичной системе исчисления. Получилось! ))
Но возник еще вопрос. Не получается занести значения со сканера в базу данных с типом файла accdb. Можно ли в бесплатной версии программы Trace Mode 6 работать с базой данных, т.е. вводить и считывать записи в ней?
Posted by Ave Oleg (Участник № / Member № 6246) on :
База данных работает, оказывается! Но в заданную ячейку БД вместо преобразованного штрих кода, записывается " 0 " и при этом создается несколько таких строк. Передача данных реализована с помощью канала CALL.MOVE. Может быть в этом причина, нужно через другой канал?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Передача данных в БД должна осуществляться с помощью канала CALL.SQLQuery, вызывающего соответствующий шаблон связи с БД. Канал CALL.MOVE не может осуществлять такую передачу данных. Если в соответствии с протоколом ODBC-драйвера (трассировщика) передача данных в БД действительно осуществляется, проблема может заключаться в несогласованности типа передаваемых данных и формата данных поля таблицы БД.
Posted by Ave Oleg (Участник № / Member № 6246) on :
Благодарим за внимание. Да конечно канал CALL.SQLQuery базы данных есть. Сначала даже пробовали без CALL.MOVE(как передатчика данных??) напрямую от канала источника передать в БД. В CALL.SQLQuery создали аргумент c типом String(IN)и привязали его к каналу источника (Float) по атрибуту 47 - MF (iDSTR)и создали запрос INSERT. Формат данных поля таблицы БД - Текстовый. Но ничего не работает... Хорошо, CALL.MOVE здесь не нужен, но возник сейчас вопрос: В каком формате нам следует передавать данные от источника канала String или UINT или же вообще нужно как то по другом задать нужные параметры?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Канал числовой, формат поля в таблице БД и тип данных аргумента в CALL.SQLQuery, видимо, тоже должны быть числовыми.
Posted by Ave Oleg (Участник № / Member № 6246) on :
До этого пробовали для имеющегося числового канала источника везде ставить текстовый формат, и текстовый, числовой комбинировали,.. не работает. Понятно, теперь сделали везде числовой формат. Все равно не работает. Мы однозначно что-то упускаем из виду. Вы могли бы посмотреть наш код? )
Posted by Ave Oleg (Участник № / Member № 6246) on :
Может быть еще причина в периоде пересчета канала. Когда мы пробовали использовании канал CALL.MOVE в качестве приемо-передатчика между каналами источника и БД, в таблицу записывается "0". Возможно данные как-то не успевали передаваться в БД?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Задача передачи в БД не зависит от источника передаваемого параметра. Привяжите передаваемый канал Float к генератору "Пила". Используйте простейшую БД, например, MS Access. Если в таком случае у Вас не будет результата, присылайте проект и БД на hotline@adastra.ru.
Posted by Ave Oleg (Участник № / Member № 6246) on :
Спасибо за помощь )
Мы выяснили, что данные из аргумента канала БД записываются в экспериментальную базу Access только в том случае если в канал БД приходит управляющий сигнал.
Вопрос: Откуда можно брать управляющий сигнал? Какой он должен быть? В какой атрибут канала БД его заводить?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Найдите поиском раздел "Выполнение SQL-запросов в реальном времени". Ознакомьтесь с уроками "Быстрого старта".