Вверх ↑
Этот топик читают: merc, Гость
Ответов: 168
Рейтинг: 7
#16: 2021-03-13 00:11:21 ЛС | профиль | цитата
Мдя..Как знакомы бубны
Привет всем.
Кстати Жорик как у тебя в юсб устройствах обзывается,юсб сериал конвертер?-дело в том что Ftdi чипы это композитные устройства,и ставятся 2уровня драйверов.сначала USB BUS а потом Юсб порт vcp драйвер.Дабы не плодить производных от первич.ошибок сначала отключи птичку vcp драйвера и перегрузись.потом включиш и выбирай номер ком порта свободный в системе.Отсюда веет корень зла,можно посадить на зарезервированный номер порта и напрямую будет работать а через год и не вспомниш почему по каноническому пути/имени нет доступа...

--- Добавлено в 2021-03-13 00:23:07

Еще добавлю как по мне фтди вообще толковые устройства если с ними работать напрямую,советую почитать попробывать их библиотеку d2xx.у меня гдето енумератор для определения сего валялся.Можно настроить любую скорость с шагом 1бод

Редактировалось 1 раз(а), последний 2021-03-13 00:23:07
карма: 1

0
Ответов: 197
Рейтинг: 2
#17: 2021-03-13 17:30:14 ЛС | профиль | цитата
flash1103 писал(а):
Кстати Жорик как у тебя в юсб устройствах обзывается,юсб сериал конвертер?

вот так он выглядит.

если быть точным это не совсем обособленный usb-com конвертер. Это готовое устройство на котором я хотел поставить опыт и зашёл в тупик.
Драйвера качал напрямую с сайта производителя чипа. Все встало без проблем.
Да по даташиту чип выглядит полноценно поэтому я с него и начал!
карма: 0

0
Ответов: 168
Рейтинг: 7
#18: 2021-03-13 18:42:25 ЛС | профиль | цитата
Привет,только зашел,неправильно смотриш вернее не туда.Это вторичный вцп ком драйвер а первичный сидит в юсб устройствах,оставь открытым диспетчер и потыкай туды сюды штеккер-увидиш его в юсб устройствах повторюсь,там включалки выключалки
Без разницы какое это устройство хоть преобразоаптель 485 хоть программатор
карма: 1

0
Ответов: 197
Рейтинг: 2
#19: 2021-03-22 16:48:23 ЛС | профиль | цитата
Кстати говоря в ComEX, точка doWrite есть. А вот doRead я не нашЁл. Она вообще предусмотрена этим компонентом? Хотя событие onRead присутствует которое возникает после успешного чтения из порта.
карма: 0

0
Ответов: 4629
Рейтинг: 749
#20: 2021-03-22 18:22:03 ЛС | профиль | цитата
Вроде так и задумано - чтобы получать данные по "инициативе" устройства. В случае doRead - читать нужно по инициативе программы, а реализация первого варианта на уровне схемы была бы не очень удобной. Для doRead есть предыдущий вариант этого компонента - "COM".

Редактировалось 1 раз(а), последний 2021-03-22 18:22:26
карма: 26

0
Ответов: 1
Рейтинг: 0
#21: 2021-03-24 06:58:05 ЛС | профиль | цитата
Кстати с ftdi проблем вообще небыло. Купил 232 микруху, перепрошил ее под свои нужды, спаял схему, накатал приложение и с СОМ и с СОМех: заработало сразу.
карма: 0

0
Ответов: 168
Рейтинг: 7
#22: 2021-03-24 10:34:47 ЛС | профиль | цитата
тс не стал просто дальше разбираться,как мне кажется.Да хорошие чипы и по разному позволяют с ними работать.Не озвучил ни чего даже версии драйвера.Для себя решил проверить воткнул шнурок в новую W7 32 максимальная-молча посадила какието se_ftdi USB multifunction.
Пробовал с ними работать -устройство занято причем на обоих уровнях сом/усб.
Откатываю с сайта на нормальныепоследние 2.12 - та же история()проверял все по 3 раза с перезагр. естественно)
Качаю предпоследние 2.08.24-норма заработало все и все функ фтди.

PS. Для себя давно уже определился с версией,у меня на всех компах и на флешках лично 2.08.16 полные лежат.Надо будет повоевать по моему связано с авторизацией чтото но это надо духа набраться
карма: 1

0
Ответов: 197
Рейтинг: 2
#23: 2021-05-07 03:18:54 ЛС | профиль | цитата
Заказал из китая usb реле и не могу отослать требуемые байты для активации и деактивации реле.
Add(MainForm,2953706,21,105)
{
Width=891
Height=458
Point(onClose)
link(onCreate,15461939:doOpen,[])
link(onClose,15461939:doClose,[])
}
Add(COMEX,15461939,595,119)
{
Port=3
Point(onDCD)
Point(onOpen)
Point(doDTR)
Point(doRTS)
Point(doRXClear)
Point(onError)
Point(onClose)
link(onSyncWrite,4505513:doMessage,[(671,125)(671,146)])
}
Add(Button,8326494,21,196)
{
Left=35
Top=105
Width=135
Height=40
Caption="включить"
Data=String(A00101A2)
link(onClick,3113838:doEvent1,[(90,202)(90,230)])
}
Add(Button,11733066,18,247)
{
Left=180
Top=105
Width=135
Height=40
Caption="выключить"
Data=String(A00100A1)
link(onClick,3113838:doEvent2,[(95,253)(95,237)])
}
Add(Hub,3113838,133,224)
{
InCount=2
OutCount=3
link(onEvent1,1995138:doConvert,[(217,230)(217,258)])
}
Add(Edit,8002767,392,301)
{
Left=125
Top=175
Width=360
}
Add(Edit,8418515,651,294)
{
Left=125
Top=215
Width=360
}
Add(Convertor,5462281,392,252)
{
Mode=6
Digits=10000000
DirectFill=1
link(onResult,6582437:doEvent1,[(443,258)(443,237)])
}
Add(Message,4505513,714,140)
{
}
Add(Hub,6582437,462,231)
{
link(onEvent1,15461939:doWrite,[(569,237)(569,139)])
link(onEvent2,8418515:doText,[(570,244)(570,300)])
}
Add(Hub,12207734,322,252)
{
link(onEvent1,5462281:doConvert,[])
link(onEvent2,8002767:doText,[(364,265)(364,307)])
}
Add(Convertor,1995138,280,252)
{
Mode=5
Digits=-727379968
link(onResult,12207734:doEvent1,[])
}


я так подозреваю что нужно отправлять одним словом 4 байта в формате hex.
а программа передает почему-то 8 байт в непонятном формате как будто по символьно.

рекомендуемый терминал китайцами отправляет эти данные и реле работает. А с помощью ХИАСМ не получается.

Редактировалось 1 раз(а), последний 2021-05-07 03:21:06
карма: 0

0
Ответов: 168
Рейтинг: 7
#24: 2021-05-07 09:44:00 ЛС | профиль | цитата
В строке каждая буква это байт ascii,
Тебе hex строку конвертером типа hextobin
карма: 1

0
Ответов: 8923
Рейтинг: 823
#25: 2021-05-07 10:05:30 ЛС | профиль | цитата
flash1103 писал(а):
конвертером типа hextobin

как-то так


Add(MainForm,6993731,581,182)
{
Point(onClose)
link(onCreate,15461939:doOpen,[])
link(onClose,15461939:doClose,[])
}
Add(COMEX,15461939,644,196)
{
Port=3
Point(onDCD)
Point(onOpen)
Point(doDTR)
Point(doRTS)
Point(doRXClear)
Point(onError)
Point(onClose)
link(onSyncWrite,4505513:doMessage,[])
}
Add(Button,8326494,287,161)
{
Left=5
Top=5
Width=70
Caption="включить"
Data=String(A0;01;01;A2)
link(onClick,9260600:doWork1,[(328,167)])
}
Add(Button,11733066,284,212)
{
Left=5
Top=40
Width=70
Caption="выключить"
Data=String(A0;01;00;A1)
link(onClick,9260600:doWork3,[(328,218)])
}
Add(Hub,3113838,343,189)
{
link(onEvent1,2515329:doClear,[(511,195)(511,209)])
link(onEvent2,4083153:doEnum,[])
}
Add(Message,4505513,693,196)
{
}
Add(Convertor,1995138,420,196)
{
Mode=5
link(onResult,11028615:doConvert,[])
}
Add(Str_Enum,4083153,371,196)
{
link(onEnum,1995138:doConvert,[])
link(onEndEnum,11068436:doData,[(410,209)(410,251)])
}
Add(Convertor,11028615,469,196)
{
Mode=4
link(onResult,2515329:doStrCat,[])
}
Add(HubEx,9260600,324,189)
{
link(onEvent,3113838:doEvent1,[])
}
Add(StrCat,2515329,525,196)
{
Point(doClear)
link(Str1,9022376:Var1,[(531,187)(517,187)(517,236)])
}
Add(DoData,11068436,525,245)
{
link(onEventData,15461939:doWrite,[(632,251)(632,216)])
link(Data,9022376:Var2,[])
}
Add(GetDataEx,9022376,525,231)
{
link(Data,2515329:Result,[])
}

карма: 19

0
Ответов: 197
Рейтинг: 2
#26: 2021-05-07 10:07:48 ЛС | профиль | цитата
Леонид, Ваше решение работает! спасибо за подсказку

А то я все варианты конвертеров перебрал уже, и не пойму в чем дело.
Понимаю что нужно было сформировать пакет, но как не доходило.

Редактировалось 2 раз(а), последний 2021-05-07 10:23:36
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#27: 2021-05-07 12:27:23 ЛС | профиль | цитата
zhorik5 писал(а):
А то я все варианты конвертеров перебрал уже

Видимо, далеко не все
Компонент

Add(StreamConvertor,13129069,266,168)
{
Mode=3
}
Этот компонент заменяет все преобразование Леонида

Редактировалось 1 раз(а), последний 2021-05-07 12:29:43
карма: 22

0
Ответов: 8923
Рейтинг: 823
#28: 2021-05-07 13:32:00 ЛС | профиль | цитата
nesco, зато логика преобразования понятна для пользователя плохо представляющего зачем нужен формат HEX
Я тоже забываю про этот конвертор
Эх, уже полгода Tad прогуливает он бы разъяснил на пальцах.

Редактировалось 1 раз(а), последний 2021-05-07 13:32:42
карма: 19

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#29: 2021-05-07 16:15:53 ЛС | профиль | цитата
Леонид писал(а):
Эх, уже полгода Tad прогуливает

Да уж, не хочется как-то думать о плохом
карма: 22

0
Ответов: 197
Рейтинг: 2
#30: 2021-05-09 10:37:18 ЛС | профиль | цитата
nesco писал(а):
Этот компонент заменяет все преобразование Леонида

Да, существенно упрощает схему.
Схема называется сведи с ума реле)) :lol:

Add(MainForm,2953706,644,189)
{
Width=389
Height=177
Point(onClose)
link(onCreate,15461939:doOpen,[(706,209)(706,251)])
link(onClose,15461939:doClose,[(696,216)(696,258)])
}
Add(COMEX,15461939,735,245)
{
Port=3
Point(onDCD)
Point(onOpen)
Point(doDTR)
Point(doRTS)
Point(doRXClear)
Point(onError)
Point(onClose)
}
Add(StreamConvertor,2547758,602,273)
{
Mode=3
link(onResult,15461939:doWrite,[(642,279)(642,293)(700,293)(700,265)])
}
Add(Button,8326494,49,287)
{
Left=5
Top=5
Width=70
Caption="включить"
Data=Integer(500)
link(onClick,2902641:doPosition,[])
}
Add(Button,11733066,53,198)
{
Left=5
Top=40
Width=70
Caption="выключить"
link(onClick,6277848:doStop,[(214,204)(214,300)])
}
Add(Hub,13479268,574,273)
{
InCount=2
OutCount=1
link(onEvent1,2547758:doConvert,[])
}
Add(TrackBar,2902641,119,287)
{
Left=10
Top=65
Width=360
Max=1000
Min=1
Position=500
link(onPosition,15561737:doEvent1,[(170,293)(170,307)])
}
Add(DoData,16425085,504,273)
{
Data=String(A00101A2)
link(onEventData,13479268:doEvent1,[])
}
Add(DoData,7959721,504,315)
{
Data=String(A00100A1)
link(onEventData,13479268:doEvent2,[(555,321)(555,286)])
}
Add(Timer,6277848,280,287)
{
Enable=1
Point(doInterval)
link(onTimer,16312843:doSwitch,[])
}
Add(IndexToChanel,13729112,427,287)
{
link(onEvent1,16425085:doData,[(481,293)(481,279)])
link(onEvent2,7959721:doData,[(481,300)(481,321)])
}
Add(Hub,15561737,189,301)
{
link(onEvent1,6277848:doInterval,[])
link(onEvent2,6277848:doTimer,[(238,314)(238,293)])
}
Add(Switch,16312843,336,287)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(doOn)
link(onSwitch,13729112:doEvent,[])
}

карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)