20.11.2023, 22:23 | #1 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Опрос много слейвов через SlaveX
Подскажите, кто сталкивался:
Необходимо опрашивать несколько десятков контроллеров по Modbus TCP, но не получается опросить и два. Если оба контроллера доступны, то все нормально, но стоит один отключить то прекращаются запросы и на второй контроллер, судя по DEVICE(Link), хотя импульс на вход ^ переменной R(in) проходит. Контроллер матрикс, отформатирован из последнего лоджика. Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
21.11.2023, 10:59 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: SlaveX
Цитата:
Что касается вашей программы, то наверняка что-то не так идёт, однако переключаемый опрос штука рабочая и используется в паре наших штатных программ. Но разбираться вашей проблемой сложнее и дольше, чем просто скопипастить. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.11.2023, 14:48 | #3 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: SlaveX
Проблема в том, что слейвы будут добавляться постепенно. Сейчас неизвестны не только их адреса, но и конечное количество. Т.е. пользователь сам должен будет добавлять слейвы по мере необходимости. Поэтому просто скопипастить не получится.
Эта программа просто небольшой пример для демонстрации проблемы. Если есть рабочий пример переключаемого опроса буду премного благодарен. |
21.11.2023, 15:23 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: SlaveX
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
Благодарность от: |
24.11.2023, 01:58 | #5 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Пришлось провести некоторые эксперименты с блоком SlaveX и результаты меня не порадовали. В случае не получения ответа от слейва следующий запрос будет отправлен не ранее чем через четыре секунды, если слейв на эти запросы не ответит пять раз подряд, то следующие пять запросов с интервалом четыре секунды будут отправлены не ранее, чем через минуту. И это не зависит от частоты импульсов на входе ^ переменной R(in). И самое главное не зависит от смены адреса слейва. Поэтому о переключаемом опросе в таком варианте и речи быть не может. Пример, который любезно предоставил Арсений написан в конце 2020 года предположительно на лоджике 3.32. Я не поленился, установил для проверки себе лоджик 3.32 и там ситуация лучше. После трех неудачных запросов, повторные три запроса будут отправлены не ранее, чем через пять секунд. И для переключаемого опроса, если всего несколько слейвов, наверное это имеет право на жизнь.
Я уже смирился, что придется использовать Slave вместо SlaveX и накопипастить их сотню, благо, что через веб интерфейс можно задать адрес и есть галка для отключения запросов. Но и здесь меня поджидала засада - независимо от количества слейвов в настройках мастера отображается не более одного слейва. |
24.11.2023, 10:46 | #6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Проекты для иллюстрации рассказанного приложите?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 12:25 | #7 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Проекта со Slave-ми как такового еще нет, просто накопипастил пять слейвов, но через веб интерфейс доступ только к одному.
Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
24.11.2023, 12:32 | #8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Извините, ко картинкам гадать никакого желания нет. Либо проекты, либо моя помощь вам не нужна.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 13:08 | #9 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Проект с несколькими слейвами.
Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
24.11.2023, 13:19 | #10 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Тест проходил следующим образом:
На двух компьютерах установлены Wireshark для регистрации запросов и Modbus Slave для имитации слейвов. С контроллера в режиме отладки поочередно, вручную задавались адреса компьютеров. Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
24.11.2023, 13:31 | #11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Какая из проблем проявляется в этом проекте?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 13:42 | #12 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Через веб морду доступ только к Slave1.
Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
24.11.2023, 14:37 | #13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
В системном меню доступны все слейвы?
Добавлено через 24 минуты А в этом проекте что смотреть? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 16:24 | #14 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Да, все.
В этом проекте смотреть не на что. В справке написано: вход "^" - по фронту производится отправка запроса на чтение/запись , но по факту этого не происходит, если перед этим слейв не ответил, даже если мы обращаемся уже к другому слейву, по другому адресу. |
24.11.2023, 16:27 | #15 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Вы дёргаете вход "^" до того, как истёк тайм-аут предыдущего запроса или после?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 17:22 | #16 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
|
24.11.2023, 17:59 | #17 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
В проекте я вижу, что период отправки совпадает с тайм-аутом. Т.к. тайм-аут начинает отсчитываться после отправки, значит тайм-аут запаздывает относительно отправки. И тогда да, получается, что каждое второе "^" проглатывается, т.к. тайм-аут ещё не истёк, а "^" уже дёрнулось.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.11.2023, 22:36 | #18 |
Member
Регистрация: May 2022
Сообщения: 52
Благодарил(а): 5 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Я наверное очень плохо объясняю проблему. Попробую еще раз.
Во вложении ещё один тестовый проект. После его запуска в режиме отладки, я думаю вы сами всё поймете. Т.е. если вы попробуете с помощью этого блока опросить пять разных слейвов с периодом в одну секунду между запросами, то при неисправности одного из них вы не получите ответа ни от одного из слейвов. Четыре запроса он просто проигнорирует. Если время бездействия SlaveX будет больше 5, то вы не сможете отправить ни оного запроса, ни на какой адрес в течении одной минуты!!! В течение 60 секунд вы не сможете с этого блока ни чего никуда отправить ни при каких обстоятельствах!!! и таймауты там ни причем. Последний раз редактировалось Arsie, 14.05.2024 в 13:02 |
27.11.2023, 11:39 | #19 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
В течении вот этих вот 60 сек? Попробуйте поменять цифру, отключив управление из FBD.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
04.12.2023, 18:22 | #20 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 341
Благодарил(а): 0 раз(а)
Поблагодарили:
255 раз(а) в 251 сообщениях
|
Ответ: Опрос много слейвов через SlaveX
Будет исправлено в следующем релизе SMlogix, нужно будет отформатировать контроллер.
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
Благодарность от: |