Download Article
Download Article
This tutorial explains how to establish a bidirectional real-time communication between Microsoft Excel and your RS232 COM Port devices like a Scale, Proximity reader, Barcode reader, temperature sensor, Caliper, Micrometer, Gage. This solution uses the software «Bill Redirect» with the «Excel Plugin» to easily connect your peripheral and receive and send the data. The communication between Microsoft Excel and your device is made via a direct DDE link. An Excel Macro can be called after each data received from your device to validate the data received. This solution explains how you can send a command via VBA to your device and totally control your device. No programming or additional hardware required!
-
1
-
2
Download and install the Excel plugin. This is at http://www.billproduction.com plugin_DDE.zip. This plugin software is used to establish the communication with Microsoft Excel via DDE
Advertisement
-
1
Start the software: Bill Redirect. The default password to edit the configuration is: www.billproduction.com.
-
2
Disable all section except the Serial Port and Plugin.
- In section «Serial Port» set the switch to: On.
- In section «Plugin» set the switch to: On.
Advertisement
-
1
Click on: Serial Port Configuration.
-
2
Enter the Serial Port Number where your device is connected.
-
If the background color is green, it means that the serial port works and the port is open.
- Select the Bauds, Parity and Databits configured in your device.
-
If the background color is green, it means that the serial port works and the port is open.
-
3
Click on button: Save Configuration
- If you use a RS-232 to USB converter to connect your device on the computer, it is important to use a converter with FTDI chipset for a good stability !
Advertisement
-
1
Start: Microsoft Excel
. This solution is compatible with all Excel version and language ! -
2
Create a in Excel a: new blank document.
-
3
Make sure that the sheet name is: Sheet1.
-
4
Save your Excel document to: C:BillProduction.CFGMyFile.xlsx.
Advertisement
-
1
Start the Excel Plugin
. The default password to edit the configuration is: www.billproduction.com.- Important: The TCP Connection Status must indicate: Connect. If it is not to Connect then make sure that Bill Redirect Software is open.
- In trial mode you must restart the software Bill Redirect after each 15 minutes to continue your test.»
-
2
In the Excel Plugin click on the folder icon and select your Excel File created at step before.
- If all is okay, the DDE Connection Status indicate: Connect.
- At this point the communication is establish with your Device via Excel. The data received from your device is sent in Excel.
-
3
Test your communication with Excel. Use the button: Test DDE. To see what your device sends or receive, use the section Debugger in Bill Redirect.
Advertisement
-
1
Consider example #1:’ Call an Excel Macro after each data received:
- Simply enter your macro name in the field «Run macro:«
- To test the call of your macro use the button at right.
-
2
Consider example #2:’ Send a command to your device via VBA:
-
3
To send data command from Excel to your device use this VBA Excel source code:
- ChannelNumber = DDEInitiate(«BPEXCEL», «BPEXCEL»)
- DDEExecute ChannelNumber, «{TX_SERIAL[Hello Word !{ASCII:13}]}»
- DDETerminate ChannelNumber
- Replace the command Hello Word !{ASCII:13} by the command you want.
- Supplemental documentation.
- Excel Plugin full manual with all explanation: http://www.billproduction.com
- /Bill_DDE_over_Ethernet.pdf.
- Bill Redirect Software full manual with all command:
http://www.billproduction.com - /Bill_Redirect_Manual.pdf.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Thanks for submitting a tip for review!
References
About This Article
Thanks to all authors for creating a page that has been read 31,803 times.
Is this article up to date?
Знаток Регистрация: 13.07.2007 Сообщений: 652 Репутация: 117
|
Здравствуйте,уважаемые форумчане. |
|
Banned Регистрация: 21.04.2012 Адрес: южнее Дуная Сообщений: 4,318 Репутация: 416
|
Цитата:
Сообщение от Sergey57 …. Деньги небольшие и последнее является определяющим… заказчик очень своеобразен….Куплю ему, а потом и вопли с выносом мозга……Вопрос кто виноват понятно, что делать? Задач у меня немеряно ….чтобы принять решение. Нуууу, раз дело такое, то отправьте Вашего мосью Клиента в Ямальскую тундру….. А если Вам задачка по душе, то займитесь ею как хобби, имхо… А если Ваш заказчик аппетитная Дамма, то озвучте ее телефон !!!!… Созвонимся, обсъдим на тощак !!!….. ПП: что за массив данних нужно передать?… |
|
Приглашаем всех желающих принять участие в вебинаре, посвященном LED-драйверам. На мероприятии мы рассмотрим существующую и новую продукцию из линейки поставок Компэл для интерьерного, архитектурно-декоративного, наружного и промышленного освещения, а также специальные драйверы с повышенной выходной мощностью для освещения площадей, стадионов и теплиц. Будут представлены LED-драйверы производителей MEAN WELL, MOSO, Snappy, а также драйверы для аварийного освещения (ISSATA). Рассмотрим их особенности и преимущества; узнаем, какая новая продукция появилась у MEAN WELL за прошедший год, и чего нам ждать в будущем. |
Новичок Регистрация: 01.08.2012 Сообщений: 6 Репутация: 10
|
Цитата:
Сообщение от Sergey57 Пользовался 1. напишите как Вам нужно работать с com портом: в порт что-то валится от железки; нужно захватывать данные; нужно работать одновременно с несколькими com |
|
Знаток
Регистрация: 12.11.2010 Адрес: Владимир Сообщений: 229 Репутация: 101
|
Помню давно тоже интересовался подобной задачей. Только необходимость отпала, так и не реализовал. И помню что гугль вполне может помочь в Вашем вопросе. |
|
Новичок Регистрация: 04.11.2008 Сообщений: 438 Репутация: 37
|
Самым простым путем, ИМХО, который я уже реализовывал не один раз, будет запись всех принимаемых данных в текстовом формате ( с небольшой ообработкой) в файл VB-скрипта. По окончанию приема всех данных этот файл запускается на выполнение через wscript.exe и вуа-ля, таблица готова. Примеры подобных скриптов можно без труда нарыть в Интернете или могу скинуть образец. Если надо — пишите |
|
Знаток Регистрация: 13.07.2007 Сообщений: 652 Репутация: 117
|
Спасибо за исчерпывающие ответы xmailer и AkaU. В прошлый раз это всё сам точил и фрезеровал на своём ЧПУ , а в этот раз напечатаю на 3д принтере. Будет регулярная строка :начало строки, № по порядку(3р),№ строки (3р), |
|
Новичок Регистрация: 01.08.2012 Сообщений: 6 Репутация: 10
|
Цитата:
Сообщение от Sergey57 Будет регулярная строка :начало строки, № по порядку(3р),№ строки (3р), Написал приложение по логированию данных по указанному формату из com порта в указанный excel файл. Для эмуляции поступление данных в com порт по формату написали нехитрый arduino скетч: Код: int npp = 1; int nstr = 10; char buffer[18]; void setup() { Serial.begin(9600); } void loop() { /*№ по порядку(3р),№ строки (3р), Угол 1 (4р),Угол 2 (4р),Дальность (4р)*/ sprintf(buffer,"%3d%3d%4d%4d%4d",npp,nstr,random(0,360),random(0,360),random(0,9999)); Serial.println(buffer); delay(5000); if(npp > 32000){ npp=1; } if(nstr > 32000){ nstr=10; } nstr++; npp++; } Приложение можно скачать здесь |
|
Новичок Регистрация: 01.08.2012 Сообщений: 6 Репутация: 10
|
Sergey57 если приложение Вам подойдет, может правки какие, найдите пож-та для меня время. |
|
Знаток Регистрация: 13.07.2007 Сообщений: 652 Репутация: 117
|
Спасибо за заботу и разъяснения. Цитата: Будет регулярная строка :начало строки, № по порядку(3р),№ строки (3р), И напоследок , чтобы прояснить ситуацию. Нанимают киллера взорвать квартиру. |
|
Новичок Регистрация: 01.08.2012 Сообщений: 6 Репутация: 10
|
Цитата:
Сообщение от Sergey57 Занимаюсь механикой. Данную программу я сделал быстро, поскольку работаю прикладным программистом, если нужно отдам исходники. У меня период перехода с avr на smt32, и свой живой проект. Насколько я понял — Вы профессионально занимаетесь микроэлектроникой, возможно Вы могли бы ответить на несколько конкретных вопросов и не особо важно на какой архитектуре. В данном случае — деньги меня не интересуют, нужен спец по микроэлектронике. Мой скайп gserg51 или свой скажите |
|
Юрий_Нд Пользователь Сообщений: 35 |
Доброго дня Всем. |
Добрый день! |
|
Юрий_Нд Пользователь Сообщений: 35 |
#3 30.09.2021 09:42:10
Да без проблем. Изменено: Юрий_Нд — 30.09.2021 09:44:05 |
||
vikttur Пользователь Сообщений: 47199 |
#4 30.09.2021 10:02:34
Это место для подписи? |
||
Юрий_Нд Пользователь Сообщений: 35 |
… «ну типа таво.», привычка. |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#6 30.09.2021 10:11:18
да можно. По вопросам из тем форума, личку не читаю. |
||
Итак у меня стоит задача вот в чем. Есть счетчики электроэнергии они собирают данные по электричеству с оборудования. Необходимо создать файл куда будут собираться все данные по счетчикам. Сразу скажу что SCADA системы нам не по карману. Считчики подключаются к компьютеру по RS485, протокол обмена данными есть в печатаном виде. Да и еще счетчики умеют работать по MODBUSу. Поэтому может есть у кого опыт организации обмена? |
|
Юрий_Нд Пользователь Сообщений: 35 |
#8 30.09.2021 10:20:08
… Excel «знает», что такое протокол UART? БМВ, возможно эта тема «… стара как мир»? |
||
Юрий_Нд Пользователь Сообщений: 35 |
#10 30.09.2021 10:42:15
Всё очень просто. |
||
юнат Пользователь Сообщений: 22 |
#11 19.10.2022 12:52:41 Помогите читать данные с ком порта.
Как вывести данные в ексель? Изменено: юнат — 20.10.2022 08:43:49 |
||
юнат Пользователь Сообщений: 22 |
К порту подключен считыватель рфид карт. Проблема ещё в том, что номер может повторяться — это если делать опрос порта каждую секунду и сравнивать номера карт для передачи в ексель. Я пока вообще не понимаю как это всё можно организовать, поэтому сразу не могу дать всех необходимых вводных данных. |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
юнат, свои сообщения можно корректировать и дополнять. Вернитесь и исправьте оформление кода макроса. По вопросам из тем форума, личку не читаю. |
юнат Пользователь Сообщений: 22 |
Здравствуйте все и всегда! |
копите деньги Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
Игорь Федорович Пользователь Сообщений: 23 |
#16 29.10.2022 20:56:51
Случайно наткнулся на этот топик. Если еще актуально… Есть идея навеянная статьями 1. Читаем COM при помощи питона https://stackoverflow.com/questions/44056846/how-to-read-and-write-from-a-com-port-using-pyserial 2.Отображаем при помощи excel как здесь https://www.someka.net/blog/real-time-stock-quotes-using-python/ 3. Еще способ подружить Excel с Python здесь https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=5&TID=141023&… = |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#17 29.10.2022 21:18:16
идеи -это отлично, а решение есть? которое можно вставить в файл и получить желаемый результат? Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
Игорь Федорович Пользователь Сообщений: 23 |
#18 30.10.2022 10:00:06
Например в ячейке A1 будет инфо из COM4 процедура excel
модуль питона
Изменено: Игорь Федорович — 30.10.2022 10:08:53 |
||||||
юнат Пользователь Сообщений: 22 |
#19 30.10.2022 18:54:59 Игорь Федорович, спасибо за идею, все советы актуальны. |
Что это за АСУ такая, которая в качестве источника данных использует Excel-таблицу? Она точна Автоматическая Система Управления? Или может это все-же утилита, выполняющая анализ и постобработку данных?
В любом случае «простых» вариантов 2:
1) передавать с девайса на ПК CSV — файл. Выполнить это можно практически любым терминалом, включив логгирование в файл. CSV — Comma Separated Values, обычный текстовый файл, где каждая строка представляет собой что-то такое «x1 , x2 , x3 , x4n». Запятые, а на деле практически любой специальный символ, не встречающийся в xn, разделяет отдельные значения, образуя эдакие «колонки». Полученный текстовый файл запросто импортируется в Excel (как именно — зависит от версии), а уже оттуда экспортируется в «фирменный» формат;
2) курим VBA, он-же Visual Basic for Applicatoins, и встраиваем чтение последовательного порта прямо в Excel-файл. И будет там буквально кнопка, скажем, «Пуск», которая будет читать результаты из порта и сразу раскидывать по ячейкам;
Ну а варианты «по-круче» зависят от времени, квалификации и ресурсов.
Изменено 11 октября, 2019 пользователем El-Shang
Installing and Using functions as Excel Formulas
Worksheet Cell Formulas
Before starting
- Check that the Com Port settings match on both the PC and attached device.
- Connect a terminal emulator or similar device to the PC’s COM Port.
- See screenshot in folder for Com Port settings check on host PC.
Installing VBA
- Download SERIAL_PORT_EXTRA_SIMPLE_VBAn.bas
- Open a new Excel document
- Enter the VBA Environment (Alt-F11)
- From VBA Environment, view the Project Explorer (Control-R)
- From Project Explorer, right-hand click and select Import File.
- Import the file SERIAL_PORT_EXTRA_SIMPLE_VBAn.bas
- Check that a new module SERIAL_PORT_VBA_SIMPLE is created and visible in the Modules folder.
- Check/Edit
COM_PORT_NUMBER
value at start of module SERIAL_PORT_VBA_SIMPLE - In function
READ_COM_PORT
, remove the comment mark beforeApplication.Volatile
- Close and return to Excel (Alt-Q)
- IMPORTANT — save document as type Macro-Enabled with a file name of your choice.
Excel Formula Testing
Start Com Port
- In Cell A3, type the formula
=start_com_port()
and hit return - Check that
TRUE
is now shown in cell A3 TRUE
confirms that the port has started.FALSE
means port not started, i.e. not found, already in use etc.
Send to Com Port
-
Enter some short text in Cell B5 — e.g. TEST123
-
In Cell A5, type the formula
=send_com_port(B5)
and hit return -
Check that
TRUE
is now shown in cell A5 -
Check that TEST123 appears on your device
-
Change the text in Cell B5 — e.g. QWERTY and hit return
-
Check that
TRUE
is still shown in cell A5 -
Check that QWERTY appears on your device
-
This confirms that
send_com_port
is working.
Read from Com Port
- In Cell B7, type the formula
=read_com_port()
and hit return - Enter some text on your device — e.g. HELLO
- Change any other cell or press F9 key on your PC
- Check that HELLO appears in Cell B7
- Change any other cell or press F9 key on your PC for a second time
- Check that Cell B7 returns to blank (no new data to read)
- Enter some new text on your device — e.g. AGAIN
- Change any other cell or press F9 key on your PC for a third time
- Check that AGAIN appears in Cell B7
- This confirms that
read_com_port
andApplication.Volatile
are working.
Stop Com Port
- In Cell A9, type the formula
=stop_com_port()
and hit return - Check that
TRUE
is now shown in cell A9 TRUE
confirms that the port has stopped.- Change any other cell or press F9 key on your PC
- Check that FALSE appears in Cell A5 (send_com_port has failed as expected)
- This confirms that
stop_com_port
is working.
Serial Devices
Passive Devices
These devices do not need a command to be sent before replying.
Reads should function from Excel with no further action required.
Send functions are usually not required, or required once only.
Active Devices
These devices do need a command to be sent before replying.
A read delay will normally be required to allow sufficient time for the :-
a) device to process the read command
b) serial data to be transmitted back
Remove the comment mark from Kernel_Sleep_Milliseconds
in function read_com_port
Note that Functions may still be used in VBA routines as required.