|
  |
Twido Master, По 01h опрос идет, а по 04h - нет, ПОЧЕМУ????? |
|
|
|
17.5.2013, 21:45
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Здравствуйте, уважаемые форумчане! Я впервые на практике сталкиваюсь с реализацией мастера на твидо, но толмуты изучил. В результате получается вот что: Задачи: твидо (мастер порт 2 rs-485 Modbus RTU) должен опрашивать устройство-slave(трм138 ОВЕН). Опрашивать состояние выходных логических устройств и состояние входных значений измерителя. В описание на трм написано что необходимые мне ф-ции 01h(остояние выходных логических устройств) и 04h (состояние входных значений измерителя). В итоге родилась программка, как на картинке. И получилось что при выполнении ф-ции 01 твидо опрашивает и получает ответ от трм (корректный ответ), а при выполнении 04h - глухо! Я уже и со смещением и с регистрами, уже что только непробовал.... т.к. выполнение ф-ци 01 происходит корректно, то отсюда делаю вывод, что неправильно заполняю таблицу в твидо, но где понять не могу. ОЧЕНЬ НАДЕЮСЬ, что вы меня ткнете, где и что я промухал, потому что голова кипит, а результата нет, а результат как всегда нужен вчера)!
|
|
|
|
|
17.5.2013, 23:02
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Второй запрос никогда не запустится, так как операторы у Вас вызываются при обработке предыдущего сообщения. Раньше в программе стоит вызов запроса на получения битов, позже на запрос регистров. Один из вариантов решения проблемы сделать автомат состояний с каруселью последовательного вызова, типа такого: - если у нас 0-й шаг и обработана предыдущая функция вызова - сделать шаг=1 и вызвать запрос на получение битов - если у нас 1-й шаг и обработана пред. функц. вызова - сделать шаг=0 и вызвать запрос на получения регистров Если устройств несколько то и карусель будет содержать не 2 шага а столько, сколько нужно запросов Может я кое-что пропустил, не серчайте - ночь всё-таки ... :-)
|
|
|
|
|
18.5.2013, 8:08
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Цитата(san @ 18.5.2013, 0:02)  Второй запрос никогда не запустится, так как операторы у Вас вызываются при обработке предыдущего сообщения. Раньше в программе стоит вызов запроса на получения битов, позже на запрос регистров. Один из вариантов решения проблемы сделать автомат состояний с каруселью последовательного вызова, типа такого: - если у нас 0-й шаг и обработана предыдущая функция вызова - сделать шаг=1 и вызвать запрос на получение битов - если у нас 1-й шаг и обработана пред. функц. вызова - сделать шаг=0 и вызвать запрос на получения регистров Если устройств несколько то и карусель будет содержать не 2 шага а столько, сколько нужно запросов Может я кое-что пропустил, не серчайте - ночь всё-таки ... :-) Интересная ситуация, я думал вызов таких команд регулируется в твидо. Если я Вас правильно понял, то получается так?
Сообщение отредактировал Dinf - 18.5.2013, 8:09
|
|
|
|
|
18.5.2013, 8:40
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
А что поменялось то? Где же карусель? Конечно вызов таких команд регулируется Твидо. То есть, пока не выполнится один запрос - другой он не сделает (вроде). Но в Вашем случае, как только вернется ответ, Твидо запустит первый (врхний) Operate. Как только он запустится MSG2.D опять скинется. Я Вас возможно удивлю, но Твидо дает возможность обмена даже если он Slave.
|
|
|
|
|
18.5.2013, 9:49
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Цитата(san @ 18.5.2013, 9:40)  А что поменялось то? Где же карусель? Конечно вызов таких команд регулируется Твидо. То есть, пока не выполнится один запрос - другой он не сделает (вроде). Но в Вашем случае, как только вернется ответ, Твидо запустит первый (врхний) Operate. Как только он запустится MSG2.D опять скинется. Прошу прощения за смуту, я не тот файл по запарке загрузил.... Цитата(san @ 18.5.2013, 9:40)  Я Вас возможно удивлю, но Твидо дает возможность обмена даже если он Slave. Действительно удивили. Т.е. если он по настроенному порту Slave может выполнять EXCH? И воспринимать ответные сообщения? Я так подозреваю, что такое реально только в том случае, когда реальный мастер не подключен к сети. И при формировании запроса твидо в slave выдает сообщение в сеть. Другой slave (ему в принципе все-равно кто отправил запрос) отправляет в сеть ответное сообщение, а твидо его ловит и воспринимает. %S1 и %S0 - системные биты активные при "холодном" и "теплом" старте. %S9 - отключение выходов. Т.е. при первом пуске все выходы будут отключены.
Сообщение отредактировал Dinf - 18.5.2013, 10:02
|
|
|
|
|
18.5.2013, 10:10
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(Dinf @ 18.5.2013, 9:49)  Действительно удивили. Т.е. если он по настроенному порту Slave может выполнять EXCH? И воспринимать ответные сообщения? Я так подозреваю, что такое реально только в том случае, когда реальный мастер не подключен к сети. И при формировании запроса твидо в slave выдает сообщение в сеть. Другой slave (ему в принципе все-равно кто отправил запрос) отправляет в сеть ответное сообщение, а твидо его ловит и воспринимает. Я не знаю реальных причин зачем они так сделали. Меня когда-то ввело в ступор, что в Твидософт нельзя вобще выставить режим мастер. Если гипотетически мастер сделает паузу для обмена между слейвами (один из которых временно станет мастером) то можно построить гибридную модель. Но я точно таким извратом не занялся б, слишком много условностей. А прога действительно должна быть где-то такая. Надо проверять.
|
|
|
|
|
18.5.2013, 12:14
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Цитата(san @ 18.5.2013, 11:10)  Я не знаю реальных причин зачем они так сделали. Меня когда-то ввело в ступор, что в Твидософт нельзя вобще выставить режим мастер. Если гипотетически мастер сделает паузу для обмена между слейвами (один из которых временно станет мастером) то можно построить гибридную модель. Но я точно таким извратом не занялся б, слишком много условностей.
А прога действительно должна быть где-то такая. Надо проверять. СПАСИБО большое, san , Вы опять мне очень помогли! В понедельник буду пробовать!!
|
|
|
|
|
21.5.2013, 11:42
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Получилось все! Катастрофически времени не хватает, если кому интересно пришлю, пишите на cygikalo@mail.ru
|
|
|
|
|
21.5.2013, 12:27
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Проблему как решили, в 2-х словах объясните?
|
|
|
|
|
21.5.2013, 12:48
|
Группа: Участники форума
Сообщений: 3069
Регистрация: 6.9.2006
Пользователь №: 3907

|
Коллега San, а не желаете ли "веточку" по шнайдеровскому железу начать ? Обещаю, что буду постоянным читателем, т.к мне импонирует Ваш стиль изложения науки  Ау, модераторы, обратите внимание, если что.. !
|
|
|
|
|
21.5.2013, 13:37
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(vladun @ 21.5.2013, 12:48)  Коллега San, а не желаете ли "веточку" по шнайдеровскому железу начать ? Обещаю, что буду постоянным читателем, т.к мне импонирует Ваш стиль изложения науки  Ау, модераторы, обратите внимание, если что.. ! Так есть спец форум http://forum.se-automation.in.ua/index.php . Да и Шнейдеровское железо мне только избирательно знакомо.
|
|
|
|
|
21.5.2013, 14:00
|
Группа: New
Сообщений: 9
Регистрация: 25.1.2012
Пользователь №: 137440

|
Цитата(san @ 21.5.2013, 13:27)  Проблему как решили, в 2-х словах объясните? Проблема решилась так как Вы и предполагали! Первый шаг опрос подчиненного устройства функцией 01h, Второй шаг опрос подчиненного устройства функцией 04h, Далее если шаг 1 выполнен, то активировать шаг 2. Далее если шаг 2 выполнен, то активировать шаг 1. Еще необходимо учитывать, чтобы не было ошибок (морганий) после считывания состояний катушек, устанавливать(set) или сбрасывать (reset) промежуточные переменные. При опросе по первому порту необходимы: пин 1 (синий) - это А, пин 2(сине-белые) - это В, пин 5(оранжево-белый) и 7(зелено-белый) - это GND, в противном случает порт 1 работать не будет, твидо будет думать, что у него связь с твидосъют (пин 5 незаземлен), 7 пин зачем к земле еще не разобрался. но в букваре написано что надо заземлять. Прошу прощенья, если что-то непонятно. При необходимости отвечу на любые вопросы (естественно если буду сам знать  ) Еще раз СПАСИБО БОЛЬШОЕ san!!!!!!!!!!!!!!!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqvMjLF8
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqxXgvJi
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqwyM2dc
Последние сообщения Форума
|