Оцените, знающие люди!!!

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

Оцените, знающие люди!!!

Postby AlexOskar on 25 Nov 2016, 16:44

Под свои нужды расковырял библиотеку "nimodbus121" и сделал циклический опрос 2-х приборов. Нуждаюсь в редактуре. Может чего лишнего наделал или наоборот...
Лицевая панель не оформлена, т.к. планирую передавать данные в другое приложение через средства DSC модуля.
Сразу скажу, что использовать стандартный набор средств Модбас библиотеки не получится, т.к. команды нестандартные. Забирать информацию пакетом из всех ячеек тоже нельзя, т.к. потому что....
Attachments
Стабильный для счетчиков.vi
(98.44 KiB) Downloaded 109 times
AlexOskar
user
user
 
Posts: 93
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Оцените, знающие люди!!!

Postby Blackman on 26 Nov 2016, 15:36

Если по поводу BD, то на рис. как могло бы быть)
Attachments
MBMS_Read Input Registers (Synch)_26-11-2016 13-16-47_604d.png
MBMS_Read Input Registers (Synch)_26-11-2016 13-16-47_604f.png
Blackman
leader
leader
 
Posts: 759
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 212

Re: Оцените, знающие люди!!!

Postby AlexOskar on 26 Nov 2016, 23:06

Да не сыпь соль...) А так, по моему алгоритму, есть замечания?
AlexOskar
user
user
 
Posts: 93
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Оцените, знающие люди!!!

Postby Kosist on 27 Nov 2016, 00:15

AlexOskar wrote:Да не сыпь соль...) А так, по моему алгоритму, есть замечания?

А что Вы конкретно подразумеваете под алгоритмом? Процесс конвертации сообщения? Считывание сообщения?
Архитектура - наше все; не устану это повторять.
Как по мне, то во время разработки нужно спрашивать себя - насколько легко будет изменить приложение, если будут какие-то изменения то ли в требованиях заказчика, то ли в установке. И еще один вопрос, который нужно всегда держать в голове - сколько кода из данного приложения я смогу использовать еще раз в другом проекте.
Поэтому с этой точки зрения, архитектура - главная проблема Вашего приложения. Тем более, что в самом :labview: уже есть все шаблоны для проэктов - уже есть стартовая точка для разработки приложения с правильной архитектурой.
Например, много хардкода. Stacked Sequence Structure - зло, вместо нее лучше использовать стейт машину. Повторяющиеся куски кода, которые лучше запихать в subVI. Если com порт не будет присутствувать в системе, нужно будет остановить, и перезапустить приложение, т.к. элементарно нету кнопки Старт. Кстати, я не нашел там функции VISA Close - а ведь нужно правильно закрывать VISA сессию, иначе могут быть проблемы. И т.д., и т.п.
Такое делать можно для прототипирования, proof of concept. И то, нужно помнить, что в конце-концов этот proof of concept код будет далее использоваться в "боевом" приложении...
Ну, и непонятно, почему все-таки нельзя использовать либу от NI, как показал Blackman. Если Ваше устройство не поддерживает формат комманд Modbus, то тогда это и не Modbus вовсе; в мире коммуникационных протоколов все более-менее строго...
Конвертация данных - другое дело; но она не связан с опросом прибора на прямую. У меня тоже был случай, когда нужно было по особому парсить байты от прибора, но опрашивал я его стандартно... Хотя точно Ваш случай я не знаю, да и не нужно его знать - но все-таки не понятно, почему нельзя использовать либу от NI там...
Но можно следовать другой философии. "Работает? - Работает. - Ну вот и не трогай". Поэтому если работает - то :super: , но вот оформление и построение программы я бы поменял обязательно...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Оцените, знающие люди!!!

Postby AlexOskar on 27 Nov 2016, 22:00

Kosist, спасибо за развернутый комментарий.
Под алгоритмом я понимаю порядок выполнения всех операций. Хочу чтобы этот алгоритм проверили на логичность последовательности выполнения операций и необходимость их проведения. Возможно там есть лишние проверки или не нужно отслеживание тайминга выполнения операций... Это основная причина моего обращения на форум.
Протокол обмена подозрительно похож на ModBus))), но все же это не он. Здесь Вы правы на 100%. VISA Close я обязательно добавлю, спасибо. В subVI запихну все сразу, как только получу одобрение на форуме)
Какая необходимость в кнопке СТАРТ, если на панели программы есть эта кнопка (белая стрелочка)?
Расскажите, пожалуйста, подробнее какие есть претензии к Stacked Sequence Structure. Я про это ничего пока не слышал.
AlexOskar
user
user
 
Posts: 93
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Оцените, знающие люди!!!

Postby Kosist on 27 Nov 2016, 22:10

Когда Вы жмете белую стрелку (кнопку Run), VI сразу начинает выполнение. Но, в Вашем случае, нужно вначале выбрать VISA Com port, сделать настройки бауд рейт, и т.д. - и только после этого запускать виайку; что не есть хорошо - в любом приложении пользователь вначале запускает приложение, делает нужные конфигурации, и только потом происходит инициализации железа, и т.д. - возьмите, например, RealTerm, и т.д. Поэтому неплохо иметь кнопку Старт, которая будет собственно запускать сам алгоритм; а при помощи Run Вы запускаете само приложение, в целом.
По поводу Stacked Sequence Structure - советую почитать темы о стейт-машинах, их плюсах и минусах. При стейт машине, Вы можете определять переход между состояниями как угодно. А при Stacked Sequence Structure - порядок действий "захардкоден". Поэтому с точки зрения масштабирования приложения, Sequence Structure и не желательна, и ее рекомендуют использовать только в крайних случаях; ну или если алгоритм внутрии нее не будет никак изменяться.
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Оцените, знающие люди!!!

Postby Blackman on 27 Nov 2016, 23:31

AlexOskar wrote:... Хочу чтобы этот алгоритм проверили на логичность последовательности выполнения операций и необходимость их проведения. Возможно там есть лишние проверки или не нужно отслеживание тайминга выполнения операций... Это основная причина моего обращения на форум....


Не зная протокола обмена девайса, оценивать Вашу реализацию протокола а-ля Modbus, что вилами по воде.) Если же сравнивать c режимом RTU протокола Modbus реализацию передачи запроса и приема ответа, то кроме алгоритма расчета контрольной суммы СRС-16 и смотреть больше нечего.
Blackman
leader
leader
 
Posts: 759
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 212

Re: Оцените, знающие люди!!!

Postby AlexOskar on 28 Nov 2016, 22:12

Ув. Kosist, подскажите как правильно сделать в моем vi кнопку ПУСК.
И вы еще упоминали, что при отсутствии COM-порта нужно будет перезапускать vi. Сегодня тестировал работу приложения в разных ситуациях и получилось слудующее: при подключении к ПК нового устройства USB-Serial мой vi зависает напрочь. Не помогает никакой перезапуск и рестарт LabView, а только перезагрузка ПК. В чем может быть причина и как это исправить?
AlexOskar
user
user
 
Posts: 93
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Оцените, знающие люди!!!

Postby Kosist on 28 Nov 2016, 23:07

По поводу кнопки Старт - можно сделать как-то так:
btn Start.PNG

Вариант не самый лучший, но при актуальной арихитектуре, должно работать. Т.е. Вы вначале делаете конфигурацию VISA портов и настроек, а потом жмете кнопку старт - цикл останавливается, и программа выполняется.
По поводу перезапуска компа - посмотрите, стоит ли у Вас в настройках :labview: галочка Automatically Close VISA Sessions.
Options.png

Почему виснет :vi: - увы, помочь не могу... У Вас основной цикл While Loop крутится со страшной скоростью (нужно внутрь поставить задержку)... Попробуйте посмотреть "под лампочкой" - может, где-то в каком-то цикле все виснет...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Оцените, знающие люди!!!

Postby Blackman on 28 Nov 2016, 23:23

Ув. Kosist! Контролы с настройками должны быть внутри Loop.)
Blackman
leader
leader
 
Posts: 759
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 212

Re: Оцените, знающие люди!!!

Postby Kosist on 28 Nov 2016, 23:38

Blackman wrote:Ув. Kosist! Контролы с настройками должны быть внутри Loop.)

Там цикл внутри цикла + еще несколько циклов. Думаю, что еще один цикл перед главным циклом картину не испортит :wink: Плюс такой подход - почти что стандартный в примерах от NI для RF библиотек (что странно однако, но факт).
Уважаемый Blackman, Вы же лучше меня знаете, что здесь без Producer-Consumer "кина не будет".
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Оцените, знающие люди!!!

Postby Blackman on 28 Nov 2016, 23:53

У Вас значения контролов уже во входных туннелях Loop. Их изменение ничего не даст. Data Flow.)
Attachments
settings.PNG
settings.PNG (25.45 KiB) Viewed 9376 times
Blackman
leader
leader
 
Posts: 759
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 212

Re: Оцените, знающие люди!!!

Postby Kosist on 28 Nov 2016, 23:58

Blackman wrote:У Вас значения контролов уже во входных туннелях Loop. Их изменение ничего не даст. Data Flow.)

А-а, вот оно что... Мда, пора на отдых... Спасибо, я не заметил... :thank:
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Оцените, знающие люди!!!

Postby AlexOskar on 12 Dec 2016, 22:17

Сообщение Blackman 26 ноя 2016, 15:36
Если по поводу BD, то на рис. как могло бы быть)

Что за BD использована? У меня таких иконок нет
AlexOskar
user
user
 
Posts: 93
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Оцените, знающие люди!!!

Postby Kosist on 13 Dec 2016, 11:51

AlexOskar wrote:
Сообщение Blackman 26 ноя 2016, 15:36
Если по поводу BD, то на рис. как могло бы быть)

Что за BD использована? У меня таких иконок нет

Если я не ошибаюсь, то это библиотека для Modbus поновее - http://forums.ni.com/t5/NI-Labs-Toolkit ... -p/3524019 (в конце обсуждения есть vipm пакеты для установки).
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 857
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students


Return to Коммуникация с приборами

Who is online

Users browsing this forum: No registered users and 7 guests

cron