This is topic Запись в базу со считывателя in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001303.html

Posted by ssvonthenet (Участник № / Member № 6310) on :
 
Добрый день,
Имеется следующая схема.
Считыватель подключенный через USB(com3). Графический экран и база данных. При подносе пропуска к считывателю, происходит считывание идентификатора, затем возвращается значение no card.
Как реализовать запись ID карты в базу данных по событию считывания. Если ставить запись в "цикл CALC" то значения карты не всегда записываются в базу, причем значения карты отображаются на дисплее. Буду очень признателен за помощь.

как бы можно было это сделать - "Threading.Thread.Sleep(time)", но я не сильно силен в Trace Mode.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Надо программным путем обрабатывать значение канала, который принимает штрих-код.
При Параметр1 = 0 – значение канала увеличивается на 1.
Программа должна проверять значение канала и при регистрации его увеличения запускать CALL.SQL, осуществляющий запись кода в БД.
Период выполнения программы желательно задать равным 1 с., чтобы обеспечить запись в БД без прерывания.
 
Posted by ssvonthenet (Участник № / Member № 6310) on :
 
Как указать увеличение канала на 1? Параметр1 это видимо как раз тот параметр который увеличивается на 1?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Параметр4 = 0 или 1 и шаблон привязан к числовому каналу, считанный код записывается как строка в атрибут (47, iDstr) канала (до 60 байт). В случае успешного считывания, значение канала изменяется в зависимости от атрибута Параметр1 (95, C2): если Параметр1 = 0 – увеличивается на 1.

Т.е. необходимо считывать значение канала (атр. 0 - Реальное значение) программно и при каждом его изменении (в данном случае на 1 при каждом успешном считывании) запускать CALL.SQL, осуществляющий запись кода в БД.
 
Posted by ssvonthenet (Участник № / Member № 6310) on :
 
Если параметр1 = 0, то я не получаю никаких данных со считывателя. Если параметр1=1, то я получаю два значения последовательно, 1 - номер карты, 2 - нет карты. Я это вижу на ГЭ каждый раз когда подношу карту. Можно ли это считать событием? Если я тип данных ставлю число, то я вижу при каждом прикосновении число увеличивающееся на 2(номер карты, нет карты). И мне нужно чтобы 100% эти данные были записаны в базу. Можно ли это сделать на языке ST? но тогда как будет выглядеть запрос? Или может быть е сть функционал который это позволяет сделать.
 
Posted by Жигалов Денис Николаевич (Участник № / Member № 6035) on :
 
/*
IF Параметр_1 = /*Необходимое условие*/ THEN
Запись_в_базу = 1;
END_IF;
*/

Где "Запись_в_базу" - Аргумент программы типа OUT привязанный к входному значению канала Связь_с_СУБД.
1 - номер выполняемого запроса.
 
Posted by ssvonthenet (Участник № / Member № 6310) on :
 
Уважаемый Денис,
Не могли бы вы подсказать как сделать условие? Или где можно про это прочитать? Уже 2 дня не могу ничего с этим сделать.(Не программист [Неодобрение / Frown] )
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
ssvonthenet,

Судя по результатам Вашего эксперимента, протокол, поддерживаемый Вашим считывателем карт, не соответствует стандартным протоколам считывания штрих-кодов и магнитных носителей, на которые рассчитан драйвер? поставляемый в Trace Mode 6.

В связи с этим проблема организации работы с указанным устройством выходит за рамки Trace Mode 6.

Топик закрывается.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2