Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Weintek cMT3072XHT и external USB Keypad
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
AndrewKM
Коллеги приветствую.

Разрабатываю взрывозащищенный терминал ввода информации на базе панели Weintek cMT3072XHT и external USB Keypad.
Панель cMT3072XHT будет закрыта защитным стеклом и touchscreen буден недоступен.
Ввод цифр и командные кнопки запланирован через USB external Keypad.

Возникли вопросы:

1. Как можно отследить нажатие определенных клавиш с вандалозащищенной USB KeyPad, чтобы активировать ввод в соответствующие поля на экране панели (активировав соответствующий LB Bit ввода в поля) ? В макросах не нашел каких-либо функций отслеживающих нажатие клавиш и выдающих KeyCode ACSII, чтобы дальше можно было сделать обработку.
Пробовал реализовывать мониторинг нажатия Клавиш через добавленный USB Barcode/Keyboard device, но это очень неудобный подход (приходится постоянно переключать режим Barcode reader на Keyboard и после ввода числа в поле, снова переключаться в режим Barcode reader и отслеживать регистр RESULT.

2. Также столкнулся с проблемой, что External KeyPad имеет функциональные клавиши F1-F6 (ASCII x3A- x3E). Можно ли обработать их нажатие (даже через Barcode reader не отслеживается)? Панель никак не реагирует на их нажатие.

Заранее благодарю откликнувшихся !
Олег_
Назначьте всем полям ввода один и тот же бит, но не в панеле, а в контроллере (напимер его вход). и повесьте рядом с клавой переключатель, на этот вход контроллера.
Курсор будет менять поле ввода после нажатия интер.

AndrewKM
Цитата(Олег_ @ 18.12.2023, 13:51) *
Назначьте всем полям ввода один и тот же бит, но не в панеле, а в контроллере (напимер его вход). и повесьте рядом с клавой переключатель, на этот вход контроллера.
Курсор будет менять поле ввода после нажатия интер.


Олег, спасибо за идею.
К сожалению контроллера никакого в системе не предусмотрено. Панель тут является только средством визуализации и ввода номера транзакции с USB Keypad, далее
OPC Server удаленно считывает с нее введенный номер .
Было уже предложение поставить трекбол (или мышь), но это сильно усложняет ввод грязными руками.
Как вариант может какие-то металлические кнопки с Модбасом врезать (почти ваш вариант - замена контроллеру) и с их помощью активировать ввод ..
Но все это, конечно, дополнительные "танцы с бубном" .

Надеюсь, все-таки , что есть какое-то программное решение у Weintek.
Не ожидал, что у панели нет никакого обработчика USB KeyCode.

Андрей
AlexandrGr
Взведите бит в панели при открытии окна. По клавише ввод будете переключаться между полями ввода если у вас их несколько.
Олег_
У Вайнтека 5 панелей сертифицированы на взрывозащиту
https://www.rusavtomatika.com/articles/expl...-and-computers/
может ваша категория.
Олег_
Цитата(AlexandrGr @ 18.12.2023, 17:38) *
Взведите бит в панели при открытии окна. По клавише ввод будете переключаться между полями ввода если у вас их несколько.

А если кто то на Esc нажмёт? Или другую кнопку отмены фокуса. Или забудет Enter нажать?

Если 232 не занят, можно получить "вход" на панеле. Настроить порт на фри протокол, из скрипта взвести RTS.
между RTS и CTS поставить переключатель, и в цикличном макросе мониторить состояние CTS. (или через бесконечный while)
С TxD и RxD тоже подобное можно сделать.
AndrewKM
Цитата(Олег_ @ 18.12.2023, 20:46) *
А если кто то на Esc нажмёт? Или другую кнопку отмены фокуса. Или забудет Enter нажать?

Если 232 не занят, можно получить "вход" на панели. Настроить порт на фри протокол, из скрипта взвести RTS.
между RTS и CTS поставить переключатель, и в цикличном макросе мониторить состояние CTS. (или через бесконечный while)
С TxD и RxD тоже подобное можно сделать.


Олег, вы соверешенно правы - при экспериментах с переключением режима USB Keyboard / Barcode reader (для отслеживания нажатия на KeyPad в режиме ожидания) проблема именно отследить возврат в режим Barcoder после нажатия Esc в поле ввода (триггер по записи поля не срабатывает и понять, что "ввод числа закончен и надо перейти в режим BArcode reader проблематично). И система "повисает" в промежуточном состоянии.

Ваше предложение с RTS/CTS - интересно.
Надо мне подумать можно ли обойтись без доп. кнопки и как-то замыкать эти контакты с KeyPad...

А вот насчет TxD -RxD - не совсем понял (посылать условно 1 из макроса и ждать ее появление в буфере RxD после замыкания кнопки TxD -RxD ) ?

Андрей
AlexandrGr
Попробовал подключить клавиатуру через USD device.
Но это не то что вы хотите получить.

Нажмите для просмотра прикрепленного файла
AndrewKM
Цитата(AlexandrGr @ 20.12.2023, 13:12) *
Попробовал подключить клавиатуру через USD device.
Но это не то что вы хотите получить.

Нажмите для просмотра прикрепленного файла


Александр, спасибо
Залил ваш проектик, что-то вываливается "PLC not respond" при любой попытке ввода
Вроде имя USB устройства в проекте поменял. Наверное, что - то недопонимаю.
Может есть какая-то дока по работе c регистрами USB device ? Чтобы вас не мучать smile.gif

Андрей
AlexandrGr
Там есть макрос и триггер на изменение tiestemp.
Мультимедийная клавиатура не подключилась. С обычной вводятся только цифры и буквы.
Все что имеется.
Руководство USB device
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.