Компонента rs232 для 1с скачать |
Gua Talk Blog.1С Работа с COM портом. Была поставлена задача, написать внешнюю компоненту для работы из 1C v8 с COM портом. Компонента должны была снимать показания веса с очень необычных весов, а именно Весы вагонные тензометрические ЭлВВ-150/2 (III) и Весы автомобильные тензометрические ЭлВА-1660 (III) . Доступа к ним не было, по всей видимости, они были не подъемные и находились далеко от меня. Для разработки dll была выбрана среда разработки Delphi. Окончательное готовое решение было выполнено на 3й день после начала работ. Код был не полностью мой, основывался на примерах из Интерента. Долго не мог найти девайс который бы работал через нужный мне порт. Сперва была найдена мышь, но она на посланные команды в ответ нечего не слала обратно. Потом у приятеля нашелся модем, на котором я и проводил испытание свежеиспеченной динамической библиотеки. Вот, что в итоге получилось: 1С работа с COM портом. Для мониторинга того что происходило на COM порте использовал утилиту PortMon компании Sysinternals которую пару лет назад купила преславутая Microsoft. Portmon прослушивает COM порт. Для загрузки компоненты в следует поместить ее в директорию где установлина 1С в папку bin. После чего исполнить в 1C следующий код: COMПорт = Новый ( «Addin.rs232? ); // Открываем порт COM1, COM2, COM3 …. Для того что бы получить значени следует использовать процедуру обработки Внешнего События. Процедура ВнешнееСобытие ( Источник , Событие , Данные ) Сообщить ( « Получено значение: « + Данные ); Скачать демонстрационную конфигурацию и dll можно по ссылке: 1C_COM_DEMO+dll.rar. Скачать исходник DLL: rs232.rar. Нашлись команды получения веса для: Весы вагонные тензометрические ЭлВВ-150/2 (III) и Весы автомобильные тензометрические ЭлВА-1660 (III). 01h — Получение значения R 61h — Получение значения веса. В обработке осылаю команду на устройство персонализации проксимити карточек и хочу получить номер карточки. То, что устройство возвратило коды трех карточек, подтверждает Portmon: 0 0.01302819 1cv8.exe IRP_MJ_CREATE cyg_ser0 SUCCESS Options: Open 1 0.00000279 1cv8.exe IOCTL_SERIAL_GET_BAUD_RATE cyg_ser0 SUCCESS 2 0.00000168 1cv8.exe IOCTL_SERIAL_GET_LINE_CONTROL cyg_ser0 SUCCESS 3 0.00000196 1cv8.exe IOCTL_SERIAL_GET_CHARS cyg_ser0 SUCCESS 4 0.00000168 1cv8.exe IOCTL_SERIAL_GET_HANDFLOW cyg_ser0 SUCCESS 5 0.00000168 1cv8.exe IOCTL_SERIAL_GET_BAUD_RATE cyg_ser0 SUCCESS 6 0.00000168 1cv8.exe IOCTL_SERIAL_GET_LINE_CONTROL cyg_ser0 SUCCESS 7 0.00000140 1cv8.exe IOCTL_SERIAL_GET_CHARS cyg_ser0 SUCCESS 8 0.00000168 1cv8.exe IOCTL_SERIAL_GET_HANDFLOW cyg_ser0 SUCCESS 9 0.00678857 1cv8.exe IOCTL_SERIAL_SET_BAUD_RATE cyg_ser0 SUCCESS Rate: 9600 10 0.00298557 1cv8.exe IOCTL_SERIAL_CLR_RTS cyg_ser0 SUCCESS 11 0.00307022 1cv8.exe IOCTL_SERIAL_CLR_DTR cyg_ser0 SUCCESS 12 0.00280734 1cv8.exe IOCTL_SERIAL_SET_LINE_CONTROL cyg_ser0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 13 0.00397537 1cv8.exe IOCTL_SERIAL_SET_CHAR cyg_ser0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0 14 0.00396391 1cv8.exe IOCTL_SERIAL_SET_HANDFLOW cyg_ser0 SUCCESS Shake:0 Replace:0 XonLimit:28672 XoffLimit:7168 15 0.00000223 1cv8.exe IOCTL_SERIAL_GET_TIMEOUTS cyg_ser0 SUCCESS 16 0.00000168 1cv8.exe IOCTL_SERIAL_SET_TIMEOUTS cyg_ser0 SUCCESS RI:1 RM:1 RC:10 WM:0 WC:0 17 0.10989860 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 18 0.11033218 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 19 0.00093420 1cv8.exe IRP_MJ_WRITE cyg_ser0 SUCCESS Length 3: n.. 20 0.05856052 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 12: ;0F0004D836? 21 0.11033497 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 22 0.11033777 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 23 0.11032715 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 24 0.00031261 1cv8.exe IRP_MJ_WRITE cyg_ser0 SUCCESS Length 3: n.. 25 0.11033218 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 26 0.01168500 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 12: ;0F00C02248? 27 0.11033721 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 28 0.11032492 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 29 0.11032827 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 30 0.00014806 1cv8.exe IRP_MJ_WRITE cyg_ser0 SUCCESS Length 3: n.. 31 0.11033246 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 32 0.01169562 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 12: ;0F00C089C1? 33 0.11032184 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 34 0.11033106 1cv8.exe IRP_MJ_READ cyg_ser0 TIMEOUT Length 0: 35 0.00000447 1cv8.exe IRP_MJ_CLEANUP cyg_ser0 SUCCESS 36 0.05259775 1cv8.exe IRP_MJ_CLOSE cyg_ser0 SUCCESS. Устройство подключено к USB. cyg_ser0 это COM4. Но Процедура ВнешнееСобытие(Источник, Событие, Данные) не отлавливает эти посылки. Что посоветуете? Может есть описание rs232.dll? gluar на указаный email выслал измененную версию библиотеки. возможно заработает. Ссылка на скачивания уже не работает, можна ли получить компоненту на почту? И пробовали будет ли она работать на win2003 Server? |
Похожие материалы: