Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 06.11.2008, 16:59   #11
xinod
Временная регистрация
 
Регистрация: 13.07.2006
Сообщений: 90
Сказал спасибо: 10
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
xinod на пути к лучшему
По умолчанию

Есть такая вещь - DDE называется. Рекмендую взглянуть. Excel является DDE сервером. Можно на дельфях или билдере наваять клиента или сервака из стандартных компонентов и пихать в любую прогу - хоть в матлаб, хот в excel, хоть в скаду какую нить. А обработку com - порта думаю несложно найти в инете.
Реклама:
xinod вне форума  
Непрочитано 06.11.2008, 17:08   #12
tauP10
Почётный гражданин KAZUS.RU
 
Регистрация: 26.08.2006
Сообщений: 1,405
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
tauP10 на пути к лучшему
По умолчанию

Сообщение от kalina147
Не будем изобретать велосипед и предложим работать с Excel из приложения, а не с приложением из Excel.
Каброн прав.

Я бы попробовал с встроенным VBA в Экселе.
В VB6 есть толковые функции работы с последовательным портом, а это значит что и в VBA экселя их можно и нужно использовать.
Строите макросик, он будет принимать из COM порта данные , там же отделять зерна от плевел, и даже записывать в нужные ячейки экселя. Можете даже себе формочку с кнопочками сделать или в меню кнопки ввести
"Освежить" "Освежить автоматически 1 раз в секунду"
"Освежить автоматически раз в 10 секунд" и т.д. пока фантазии хватит. Шеф будет даволен.
tauP10 вне форума  
Непрочитано 07.11.2008, 22:14   #13
kalina147
Частый гость
 
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kalina147 на пути к лучшему
По умолчанию

спасибо
kalina147 вне форума  
Непрочитано 10.12.2008, 21:30   #14
kalina147
Частый гость
 
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kalina147 на пути к лучшему
По умолчанию

Из всеобщей благодарности хотел бы поделиться итогами написания макроса, может кому пригодиться

Задачу сдали в первом приближение, шеф доволен,
но вот запускать надо обязательно сперва девайс, а затем в книге макрос.
Используем стандартный драйвер Microsoft Comm Control (MSCOMM32.OCX).
Разумеется, компонент, без некоторого небольшого заклинания в системный Реестре не работает

Может кто подскажет, что можно подкоректировать, чтоб не подвисало при включение?

Цитата:
Option Explicit

Dim CommPort As New MSComm, bStop As Boolean

Private Sub CommandButton1_Click()
bStop = False
Call StartGetting
End Sub

' Метод открывает RS-232 порт (если он еще не открыт)
' PortNumber - Номер COM порта (COM1 = 1, COM2 = 2, ... )
Sub CommOpen(PortNumber As Integer)
If Not CommPort.PortOpen = True Then
CommPort.CommPort = PortNumber
CommPort.Settings = "115200,N,8,1"
CommPort.Handshaking = comNone
CommPort.InBufferSize = 1024
CommPort.OutBufferSize = 0
CommPort.PortOpen = True
CommPort.RThreshold = 0
End If
End Sub

' Метод закрывает RS-232 порт (если он был открыт)
Sub CommClose()
If CommPort.PortOpen = True Then
CommPort.PortOpen = False
End If
End Sub

Sub StartGetting()
Dim InpStr$ 'As String
Dim dummy%, BufCount%, I%, iRow%, iPos%, iVal% 'As Integer
Dim Bytes() As Byte

' Отсылка команды устройству
'Четние строки с ожиданием символа 0x0D в конце
CommOpen (Range("ComPortNum"))

CommPort.InputLen = 1 ' читаем последовательно по байту
CommPort.InputMode = comInputModeText ' работаем со строкой
Do ' ищем начало пакета
dummy = DoEvents() ' не вешаем систему
InpStr = InpStr + CommPort.Input
iPos% = InStr(InpStr, "TAOS") ' индификатор девайса
Loop Until iPos% › 0 ' пока не прочтём TAOS

Application.Wait (Now + TimeValue("0:00:1")) 'ждём секунду, чтобы заполнить буфер
CommPort.InputLen = 258 ' к этому моменту у нас прочитана только сигнатура
InpStr = CommPort.Input ' дочитали остаток строки 258 байт
CommPort.InputLen = 262 ' дальше читаем полными пакетами
CommPort.InputMode = comInputModeBinary

Do
dummy = DoEvents() ' не вешаем систему
BufCount = CommPort.InBufferCount
If BufCount ›= 262 Then
Bytes = CommPort.Input
If Bytes(0) = 84 And Bytes(1) = 65 And Bytes(2) = 79 And Bytes(3) = 83 Then ' проверяем сигнатуру на всякий случай ещё раз
Range("Diapazon").Value = Bytes(4) ' выводим диапазон
For I = LBound(Bytes) + 5 To UBound(Bytes) - 1 Step 2
iRow = (I - 5) / 2
iVal = Bytes(I) * 256 + Bytes(I + 1) ' собираем из исходных 256 байт - 128
Range("OutPlace").Offset(iRow, 0) = iVal ' в принципе можно сначала сформировать массив и вывести его сразу весь, проверяя CRC
Next I
End If
End If
Loop Until (bStop = True)
Call CommClose
End Sub

Private Sub CommandButton2_Click()
bStop = True
End Sub
[/b]

Прикрепленный файл: 3387493.zip
kalina147 вне форума  
Непрочитано 10.12.2008, 22:41   #15
tauP10
Почётный гражданин KAZUS.RU
 
Регистрация: 26.08.2006
Сообщений: 1,405
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
tauP10 на пути к лучшему
По умолчанию

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

5 копеек :
mscomm32.ocx должен быть скопирован в ту папку где .eхе лежит , возможно в папку к экселю, тогда не нужно мудрить с реестром.

в программе должен быть обработчик прерываний от ошибок и событий порта( у Вас не вижу) возможно из-за его отсутствия у вас проблемы с зависоном если устройство вкл позже макроса.

Удачи

Прикрепленный файл: 2252726.rar
tauP10 вне форума  
Непрочитано 11.12.2008, 21:14   #16
kalina147
Частый гость
 
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kalina147 на пути к лучшему
По умолчанию

Не догнал, какой (.EXE)? Приложений не писали, у меня же только (.XLS). Спасибо за наводку на счет проверок, действительно забыли.
kalina147 вне форума  
Непрочитано 11.12.2008, 22:06   #17
tauP10
Почётный гражданин KAZUS.RU
 
Регистрация: 26.08.2006
Сообщений: 1,405
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
tauP10 на пути к лучшему
По умолчанию

У Вас приложение EXCEL.exe , попробуйте туда скопировать.
tauP10 вне форума  
Непрочитано 24.08.2009, 16:24   #18
kalina147
Частый гость
 
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kalina147 на пути к лучшему
По умолчанию

Проблема не желает помирать
В связке с Ёеежиком (EeePC ASUS), где нет лицензионного Microsoft Office, понадобилось закинуть наш проект в б/п аналог, например, в OpenOffice. Понятное дело полной совместимости макросов нет, напишем заново уже в ОО, но не нашли как теперь в ОО подключить mscomm32.ocx. Может кто подскажет!!!
kalina147 вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вышла версия программного пакета Sigrity SpeedXP v9.0 beta Yuri_Potapoff Proteus, KiCAD и другие ECAD 0 12.05.2009 12:43
Excel CSV forever Kabron Коллекция глюков 5 05.08.2008 19:28
Что такое идентификатор для пакета CAN? greafuger Микроконтроллеры, АЦП, память и т.д 5 01.04.2008 08:53
Ремонт радиостанции Alan48 excel Вася Микроконтроллеры, АЦП, память и т.д 1 22.08.2005 12:07
Передача цифрового сигнала. (?) LEXA Автоматика и аппаратура связи 5 11.08.2004 09:54


Часовой пояс GMT +4, время: 04:37.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot