|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
13.08.2014, 10:21 | #1 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Помогите с упорядочиванием опроса по RS-485
(вычеркнул написанное было подробное описание задачи - оставил только суть).
1) имеется туева хуча УВВ, подключенных к smh2G по шине RS-485 (их много, даже слишком много: при автоматическом опросе всех - время реакции системы становится больше 6 секунд - при рекомендованных НТД двух секундах). 2) по каждому УВВ программа отрабатывает следующий алгоритм "задание состояния выходов - ожидание установки выходов в самом УВВ - чтение состояния выходов и входов", при этом с контроллера вычитывается реальное состояние выходов (т.е. с заданным оно совпадет только тогда, когда все выходы установятся соответсвующим образом - это занимает до 200-300 мс. А даные со входов становятся достоверными только тогда, когда выходы установились в заданное состояние). 3) В карте памяти, соответственно, имеются три строчки: задание выходов, чтение выходов, чтение входов (запись/чтение выходов разделены на отдельные операции) Что хочется получить: а) сперва во всю туеву хучу УВВ только ЗАПИСАТЬ значения выходов (1 запрос - экономим время занятости шины, не формируя запросы чтения) а') за время записи пройдет, думаю, с полсекунды - т.е. все выходы уже успеют установиться... б) затем СЧИТАТЬ со всех УВВ состояние выходов и входов (1-2 запроса, в зависимости от того, как расположены их регистры). б') скорее всего, корректными будут уже все считанные данные. Если какие-то некорректны - цикл ЧТЕНИЯ (и только он!) повторяется еще раз. в) сравнение считанного состояния выходов с заданным, и, при их совпадении, "защелкивание" выходных данных для дальнейшей обработки. естественно, после этого цикл повторяется. Вопрос, собственно, такой: как заставить выполняться отдельно сперва операции записи (Rout) для всех устройств, и, только после того - операции чтения (Rin) также для всех устройств. Технически такое вообще возможно? И если да - то как? |
13.08.2014, 11:04 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Но запись без чтения невозможна. После записи будет автоматически следовать чтение. Затягивать во времени чтение не имеет никакого практического смысла. Запросы с нулевым временем опроса группируются путём подключения входов строба к одному и тому же источнику. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
13.08.2014, 14:19 | #3 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
1) а чтение без записи - возможно?
2) в моем случае - затягивание как раз имеет практический смысл: за то время, пока после записи - данные для прочтения становятся достоверными, я могу записать если не все - то многие УВВ. Зато все чтения, следующие сразу после записей - заведомо недостоверные, т.е. не имеют практического смысла. То есть получается вдвое больший трафик (и бОльшая задержка в реакции системы) для той информации, которая нужна. 3) ну а при описанном вами раскладе - никакого смысла в управлении запросами нет, ибо что вручную, что в автомате - шина будет засираться лишними запросами к УВВ совершенно одинаково (в автомате только FBD проще выходит). |
13.08.2014, 14:37 | #4 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Вопрос на основании вашего "низ-зя":
Как можно минимизировать цикл опроса ~40 штук УВВ по RS485. В каждом записывается 1 переменная "выходы" Rout(int), и читаются 2 переменных "выход" и "входы", обе Rin(int). Запись/чтение разделены на две операции, т.к. это экономит трафик (у Овен МДВВ регистры чтения выходов и входов идут подряд и вычитываются одним запросом, а МДВВ на шине - большинство). Разбежка "запрос-ответ" для МДВВ допустима в 15 мс, для ICP-DAS - 10 мс (т.е. наибольшая будет 15 мс). Какой параметр периодичности опроса ставить (одинаковый для всех УВВ)? 5) 20 мс (заведомо больше паузы между запросом и ответом любого УВВ, но при этом совершенно не учитывающее число устройств на шине), и считать, что smh2G все равно сперва опросит все ~40 УВВ, и только потом вернется к первому 6) 20*40=800 мс (хм... "отфонарная" цифра получается) 7) считать время запроса, добавлять паузу 15 мс, и множить это число на число УВВ на шине? |
13.08.2014, 15:57 | #5 |
Сотрудник Segnetics
Регистрация: Sep 2011
Сообщения: 129
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
|
13.08.2014, 15:59 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Чтение холдингов/койлов? Конечно возможно. R(out)
Цитата:
Я написал своё мнение. Ваш выбор - что с ним делать __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
13.08.2014, 16:48 | #7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Самое эффективное - разделить опрос на два порта.
Далее правильно рассчитать тайм-ауты. И опрашивать только те переменные, которые нужны и только тогда, когда это нужно. Если у вас модуль вывода, то посылать ему запросы только когда нужно изменить состояние выхода. если модуль ввода, то посылать запросы с той частотой, которая реально достаточна алгоритму техпроцесса. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
14.08.2014, 02:02 | #8 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
RS-232 занят другой задачей... А добавить модуль расширения с RS-485 ваша компания сочла "априори нерентабельным"... Потому что у меня - матричный опрос (до 96 сухих контактов (реально используется не более 76) - и всего 1 УВВ с 12 входами и 8 выходами). Выходы формируют "строки", с которых на входы идут 12 "столбцов". На пересечениях - "сухой контакт". Соответственно, данные "столбцов" будут достоверны только тогда, когда активна заданная "строка". Вот только у МДВВ оказался один большой минус перед М-7050: его выходы устанавливаются в заданное состояние не сразу, а с приличной задержкой (фиг их знает, почему так. Хорошо хоть чтение coils показывает их реальное состояние, а не то, что задано в Rout) - за это время (расчетно) успеют пройти 20-30 запросов к слейвам. Увы, но Овеновский МДВВ подошел как нельзя лучше(на предусмотренное изготовителем щита место Овен встает хорошо, а вот ICP-DAS - впритык по высоте. Ну и тот факт, что один МДВВ заменяет два М-7050 при равной цене за штуку, имея при этом "бонусом" оптоизолированные входы-выходы - тоже играет роль). Решение, предложенное "профессионалами" - по 8 штук М-7051 (модули 16-битных вводов) в отдельный ящик, который прикорячить над каждым из силовых щитов... Поясните, как - если они в одной карте слейва с установкой койлов? (МДВВ - это и ввод и вывод). Впрочем, неактуально в силу ранее сказанного... У меня не техпроцесс. У меня банальнейший "регистратор" температуры в 14 точках + состояния коммутационных аппаратов в силовых электрощитах "скромного" здания (естественно, с ведением журналов "включения/отключения" и алармов "выбивания/перегорания"). Крайне желательно было бы отправлять СМС при алармах, в идеале еще и иметь возможность поглядеть инфу с любого устройства через веб-браузер - так что "в дело" пойдет smh2Gi, но "вводно-регистрирующую" часть прекрасно можно отработать и на имеющемся для экспериментов 2G... |
|
14.08.2014, 09:51 | #9 |
Сотрудник Segnetics
Регистрация: Sep 2011
Сообщения: 129
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
2 ailcat
Могу в ядре 2G отключить чтение RW переменной после записи. Но только для переменных с периодом опроса 0. Т.о. Вы сможете сделать сначала отправку данных на запись для всех слейвов, потом чтение. Надо? |
14.08.2014, 10:36 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Вы все свои точки опроса можете разделить по приоритетам. Пускатели опрашивать почаще, автоматы пореже. Температуру ещё реже. Насчёт сравнения МДВВ с М-7051 - так потому и цена у них разная, что характеристики разные. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
14.08.2014, 19:39 | #11 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Можно по подробнее описать эту замеченную Вами особенность? Как её увидеть? Я несколько лет работал с МДВВ, пока новая серия модулей не вышла, ни разу не замечал никаких задержек.
__________________ BANNED |
14.08.2014, 19:41 | #12 | ||
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
P.S. Он, на деле, чуть больше чем регистратор, ну да не суть. Цитата:
Дык никто этого не отрицает. В моем случае применение бюджетного решения оправдано. Для кого-то - нет... |
||
14.08.2014, 19:56 | #13 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
На 2G крутится программа (тик - 20 мс) которая пишет R51 (маску выходов) и читает вторым запросом R50 (маску входов) и R51, вычисляя число тиков между отдачей команды на запись и получением "правильного" ответа. Как-то так сложилось, что на "тестовом" экземпляре МДВВ-К входы начинают соответствовать выходам примерно через 300 мс (а R51 считанный соответствовать R51 отданному на запись - или так же, или на один тик раньше). Сперва грешил на SMH2G - но выяснилось, что в случае М-7050 достоверный ответ получается уже на следующем тике (иногда - через тик, что вполне объяснимо огрехами несинхронности RS485 и FBD в самом smh2G) |
|
14.08.2014, 20:01 | #14 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Но за готовоность это сделать - спасибо! |
|
14.08.2014, 20:14 | #15 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
__________________ BANNED |
|
15.08.2014, 13:34 | #16 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
НО: данный фильтр не коим боком не влияет на выходы... |
|
16.08.2014, 13:52 | #17 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
__________________ BANNED |
|
17.08.2014, 23:12 | #18 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
И (уже серьезно) - логика обработки у вас другая (я обошелся без математики). Но, при таком цикле - это уже не играет никакой роли. А если серьезно - то такая разница в результатах могла возникнуть толкьо в одном случае: слишком большой разброс характеристик у разных экземпляров Овена (любопытно, почему?). Если большинство всё-таки такие, как у вас - это есть гуд! Если как у меня - для моей задачи некритично... Но кому-то (вам?) однажды может подгадить (даже если это 1 экземпляр из 1000 - кто знает, кому он попадется и в какой проект встанет?) |
|
18.08.2014, 08:47 | #19 | ||
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Например: Цитата:
Это у Вас просто опечатка? __________________ BANNED |
||
18.08.2014, 17:53 | #20 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
|
18.08.2014, 20:44 | #21 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
"Воссоздание" лишено смысла, так как если Вы вдруг (ну, случайно, всякое бывает ) накосячили с запросами в первый раз, далеко не факт, что Вы точно также накосячите во второй.
Если же за Вами косяков не было, то, на мой взгляд, подобные задержки могут быть связанны только с различием внутреннего ПО МДВВ. У меня модуль не менее чем 4-х летней давности, с тех пор их ни разу не покупал, перешёл на новую серию. Насколько стар Ваш модуль? __________________ BANNED |
19.08.2014, 02:45 | #22 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Тестовая сборка smh2G - МДВВ
Дата выпуска моих:
smh2G - у меня примерно с весны 2011 (т.е. выпущен зимой 2010-2011 г.) МДВВ-К -выпущен 09 июня 2014 года, (купил буквально неделю назад) Картинки: 1) Насчет схемы - решил повторить вашу, но чуть по другому оформил (работоспособность не изменилась - можете проверить) 2) карта памяти - виден период опроса в 15 мс 3,4,5) фото экрана. Паршиво (снимал на телефон), но всё же видны задержки в ответе - 12, 8, 13 тиков... UPD: только выложив пост, обратил внимание: на скриншоте - 13 тиков, на 1-м и 3-м фото - мерцают 12 и 13 тиков (т.е. 240 и 260 мс задержка) и вдруг... на втором фото неожиданно маленькая цифра - всего 8 тиков (160 мс)... любопытненько, с какого перепуга (визуально текст после цифры задержки вроде не прыгает)... UPD2: неожиданно заметил, что Заданные значения, значения на выходах и значения на входах совпадают только на 2-м фото. Это, конечно, наверняка проблема быстродействия FBD-блоков screen и тормознутости камеры в телефоне, но вдруг они показывают правду? Последний раз редактировалось Arsie, 22.05.2022 в 02:49 Причина: добавил "опупение" от 8 тиков на фоне 12-13, и второе "опупение" - от разницы в строчках... |
19.08.2014, 21:15 | #23 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Тестовая сборка smh2G - МДВВ
Фигня какая-то...
Покажите сетевые настройки МДВВ в конфигураторе. И сетевые настройки слейва в SMLogix. __________________ BANNED |
19.08.2014, 22:08 | #24 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Тестовая сборка smh2G - МДВВ
А на вот это, в скрине Вашей программы, обратили внимание?
__________________ BANNED |
19.08.2014, 22:51 | #25 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Тестовая сборка smh2G - МДВВ
Цитата:
__________________ BANNED |
|
20.08.2014, 07:50 | #26 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
На скрине - не-а, не обратил. Но выглядит прикольно (пресловутая "иголка"?)
Конфигурация - естественно, отладочная (хм..., честно говоря, не задумывался... Но разве в рабочей контроллер отдает в комп состояние входов/выходов? я был уверен, что именно этим они и отличаются!). Заскриншотить конфигуратор - проблема: не имею в наличии конвертера USB/RS-485, одалживать на стороне - не всегда можно. Но уставки задавал как описано в паспорте и как писал выше |
20.08.2014, 21:46 | #27 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Не думаю... Возможно, это визуальные эффекты отладочной компоновки.
Цитата:
Может в ней дело? Завтра проверю свой МДВВ в отладочной компоновке. А я - шашлычник. Без мангала и шампуров. __________________ BANNED |
|
21.08.2014, 02:09 | #28 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
|
05.09.2014, 09:43 | #29 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Если первое - то, быть может, имеет смысл "стандартное" ядро допилить так, чтобы при задании отрицательных значений они рассматривались как положительные, но после записи регистра - вычитывания записанных данных не происходило бы? И дать эту опцию как "фичу" в новой версии прошивки для 2G/2Gi/Pixel25? Eсли (long) - то, думаю, это вообще фича из серии "must have" |
|
05.09.2014, 11:30 | #30 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Помогите с упорядочиванием опроса по RS-485
Цитата:
Да и период опроса 32 секунды уже настолько редок, чтобы оказывать минимальное воздействие на трафик. Если говорить об оптимизации трафика, то лично я не вижу разницы между 37 и 65 секундами. Было бы 37 или 300/600 секунд - это да, есть хоть какая-то тема для обсуждения. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|