On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 22.12.16 13:23. Заголовок: Хорошие манеры в EISC


Стоит задача синхронизации достаточного объема сигналов (цифровых и аналоговых) между процессорами 2й серии. Какие-то есть рекомендации по оптимизации? А именно, имеет ли смысл дробить на несколько EISC символов? Как я понимаю, при изменении одного сигнала, передан будет все содержимое символа? Но если дробить, на каждый символ будет открыт отдельный сокет. Что эффективнее с точки зрения нагрузки процессора: иметь меожество символов и, стало быть, сокетов, по которым относительно редко отправляются маленькие пакеты, либо один символ и сокет, по которому гоняется с относительно брльшой частотой один пакет (когда любой из сигналов в нем меняется)?

Кто-то сравнивал?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 6 [только новые]







ссылка на сообщение  Отправлено: 22.12.16 15:41. Заголовок: А откуда информация,..


А откуда информация, что при изменении одного сигнала, будет пакет передан состоящий из состояний всех сигналов?
Из описания xsig например этого не следует.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 22.12.16 16:07. Заголовок: Предположение. Еще, ..


Предположение. Еще, помнится, где-то видел что-то про упаковку сигналов при EISC.

Предполагаете, что это не так и будут посылаться только измененные сигналы? Ну, в случае цифровых это скорее всего не так, ибо они представляются битами, а посылаться будет как минимум весь байт. Но в случае аналоговых ч не уверен, как оно работвет. Поэтому и спрашиваю.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.12.16 00:37. Заголовок: Почитайте протокол в..


Почитайте протокол в Intersystem Communications, в EISC используется он же с опцией 0 и с проверкой состояния сокета путём посылки heartbeat запроса с ответом раз в 30 сек.
Грубо говоря, при каждом событии по входному сигналу (т.е. изменению digital из 0 в 1 и наоборот, при обновлении analog (в том числе и на то же самое значение) и при появлении нового значения в serial (включая пустое)) EISC отправляет пакет в духе "такой-то сигнал стал равен тому-то", и получивший его EISC выдаёт это же событие на ту сторону.
EISC Packed делает то же самое, но умеет склеивать по нескольку пакетов.

Частности и детали наступят для вас и принесут неожиданности и открытия. Опция 0 означает, что если ваши сигналы на ЭТОЙ стороне как-то там быстро менялись, а у контроллера не нашлось времени запустить "отсылающую" часть EISC, то на той стороне вы увидите новые значения изменившихся сигналов, но только самые последние. Т.е. единичный импульс сделанный LWP на 1d может не проявиться с той стороны, serial окажется "собранным" с предыдущим состянием, а аналог который тут плавно менялся там окажется изрядно скачками (RAMP НЕ проходит сквозь EISC!).

В описалове EISC есть стыдливая приписка "An alternative method is to use the original Intersystem Communications symbol in conjunction with a Virtual Communication Port symbol. This is recommended for applications that require the use of initialization commands or <Offset> values.", которая означает что если вас тоже выбешивает такое поведение EISC, воспользуйтесь обычным символом XSIG. НО, в этом случае вы влёгкую налетаете на переполнение буфера когда Virtual Communication Port будет неуспевать отослать всё наделанное Intersystem Communications, в общем нужно с умом передавать данные)

Ещё одно тонкое место. Если в ЭТОЙ программе у вас есть, скажем, Analog Equate с 0, то пока вы не присвоите этому сигналу значение 0 соответствующий выход Analog Equate будет нулём (даже если этот аналоговый сигнал был нулём со старта программы!) . Когда вы передадите этот сигнал через EISC и ТАМ его сравните с нулём, то там этот выход станет 1 как только EISC соединятся!

Сколько именно вы делаете EISC - дело вкуса, но это не уменьшит трафик. Напротив - каждый EISC - это открытый сокет с обменом раз в 30 сек или постоянные попытки открыть сокет с киданием Warnings. Особый шик - засунуть сигнал на оба EISC, или закольцевать его)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.12.16 13:18. Заголовок: Огромное спасибо за ..


Огромное спасибо за подробные комментарии! Очень познавательно - был не в курсе разных моделей поведения (опция 0). Буду дальше вникать. Но да, похоже уже налетал на некоторые из отмеченных граблей...

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 23.12.16 13:55. Заголовок: eoulianov подскажите..


eoulianov подскажите ссылочку, где про написано сетевой Intersystem Communications
Потому как я видел только в хэлпе на элемент xsig который по 232.

Продам модули на конференц системы BOSCH DCN CCU2, CCS1000D.
+79161734005
Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.12.16 22:55. Заголовок: Вячеслав, так оно пр..


Вячеслав, так оно про этот самый XSIG и есть, это старый трушный вариант когда ещё не сделали EISC):
На двух контроллерах на одном и том же IPID, сославшись на IP друг друга ставим два Virtual Communication Port. К ним привешиваем по XSIG и имеем то, что потом стало Ethernet ISC, но в есть возможность выбрать "опцию".
В XSIG можно до 1024 analog/serial и 4096 digital в обе стороны, а в Ethernet ISC - по 4001 каждого сорта



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 52
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет