Fbd, Trim5 |
|
|
|
9.4.2019, 20:00
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Подскажите, если кто знает, как сделать счётчик с нарастающим итогом? В программе есть контрольный блок связи, который выдаёт количество не отвеченных запросов по Modbus от конкретного устройства. После того как устройство хоть раз ответило, счётчик обнуляется, а надо чтоб не обнулялся. Блок называется Slave (Link), сам он так делать не умеет, а просто выдаёт количество зафиксированных подряд ошибок связи. Вот как их можно суммировать за всё время работы устройства с момента включения питания?
|
|
|
|
|
9.4.2019, 20:45
|
Группа: Участники форума
Сообщений: 3711
Регистрация: 6.9.2007
Пользователь №: 11117

|
Цитата(Сергей А. Ефремов @ 9.4.2019, 20:00)  Подскажите, если кто знает, как сделать счётчик с нарастающим итогом? В программе есть контрольный блок связи, который выдаёт количество не отвеченных запросов по Modbus от конкретного устройства. После того как устройство хоть раз ответило, счётчик обнуляется, а надо чтоб не обнулялся. Блок называется Slave (Link), сам он так делать не умеет, а просто выдаёт количество зафиксированных подряд ошибок связи. Вот как их можно суммировать за всё время работы устройства с момента включения питания? За 10лет или 100лет, или 1000.., или...? Глупости морозите..
|
|
|
|
|
10.4.2019, 6:38
|
Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014

|
На нормальном языке решается в 4 строчки, попробуйте перевести в свой придуманный язык.
if (cnt1_pre != cnt1) { if (cnt1_pre < cnt1) cnt2 += cnt1 - cnt1_pre; cnt1_pre = cnt1; }
|
|
|
|
|
10.4.2019, 9:26
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(stscat @ 10.4.2019, 6:38)  На нормальном языке решается в 4 строчки, попробуйте перевести в свой придуманный язык. Ваша программа недостаточно оптимальна, чтобы бахвалиться знанием языка. Цитата(Сергей А. Ефремов @ 9.4.2019, 20:00)  Подскажите, если кто знает, как сделать счётчик с нарастающим итогом? В программе есть контрольный блок связи, который выдаёт количество не отвеченных запросов по Modbus от конкретного устройства. После того как устройство хоть раз ответило, счётчик обнуляется, а надо чтоб не обнулялся. Блок называется Slave (Link), сам он так делать не умеет, а просто выдаёт количество зафиксированных подряд ошибок связи. Вот как их можно суммировать за всё время работы устройства с момента включения питания? Если слейв единственный на шине, то можно использовать блок Device.link, там нарастающий итог.
________________.png ( 9,13 килобайт )
Кол-во скачиваний: 60В принципе, и мою программу можно упростить, сравнивая входящее значение с нулём, а не с предыдущим значением. Минус один блок.
|
|
|
|
|
10.4.2019, 9:35
|
Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014

|
Ну вот Ashihara все сделал за Ефремова. Дословный перевод моего примера.
Ashihara, интересен ваш вариант кода на C)
|
|
|
|
|
10.4.2019, 10:05
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(stscat @ 10.4.2019, 9:35)  Ashihara, интересен ваш вариант кода на C) Померяемся как-нибудь в другой раз
|
|
|
|
|
10.4.2019, 11:05
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(Ashihara @ 10.4.2019, 9:26) 
________________.png ( 9,13 килобайт )
Кол-во скачиваний: 60В принципе, и мою программу можно упростить, сравнивая входящее значение с нулём, а не с предыдущим значением. Минус один блок. Проверил - не работает.... После того как связь восстанавливается всё обнуляется.
|
|
|
|
|
10.4.2019, 11:05
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 11:03)  Проверил - не работает.... Порядок блоков очень важен. Какие левее, какие правее. Иначе да, работать не будет.
|
|
|
|
|
10.4.2019, 11:50
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(dopi @ 10.4.2019, 11:34)  при сбросе питания счетчик обнулится Схема обнуляется после восстановления связи на линии, а не пропадания питания, то есть по сути никак не влияет на работу первоначального блока.
|
|
|
|
|
10.4.2019, 12:25
|
Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 11:50)  Схема обнуляется после восстановления связи на линии, а не пропадания питания, то есть по сути никак не влияет на работу первоначального блока. И ничего там после восстановления связи не обнуляется.
|
|
|
|
|
10.4.2019, 13:15
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
хз
Сообщение отредактировал Сергей А. Ефремов - 10.4.2019, 13:27
|
|
|
|
|
10.4.2019, 13:32
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 13:15)  хз Я проверил, прежде чем выложить. Так что соберите волю в кулак, распечатайте мою схему на листик, листик приложите к монитору и соберите свою схему один-в-один. Будет работать. Обещаю.
|
|
|
|
|
10.4.2019, 17:49
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
SMLogix____trim5.psl_.jpg ( 124,82 килобайт )
Кол-во скачиваний: 10Может что-то не так делаю?...
|
|
|
|
|
10.4.2019, 17:55
|
Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 17:49)  Может что-то не так делаю?... Естественно не так. Цитата(Ashihara @ 10.4.2019, 11:05)  Порядок блоков очень важен. Какие левее, какие правее. Иначе да, работать не будет.
|
|
|
|
|
10.4.2019, 18:07
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
SMLogix____trim5.psl_.jpg ( 63,79 килобайт )
Кол-во скачиваний: 10Так работает. Цитата(cauto @ 10.4.2019, 17:55)  Естественно не так.  Левее, правее... момент зарождения сознания происходит в момент осознания сознанием своей способности осознавать, вы это имеете в виду что-ли?
|
|
|
|
|
10.4.2019, 18:36
|
Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 18:07)  Левее, правее... момент зарождения сознания происходит в момент осознания сознанием своей способности осознавать, вы это имеете в виду что-ли? Всё проще. В вашем варианте на входы А и В блока сравнения (СМР_long) приходят одинаковые значения, сравнивать по сути нечего. А у Ashihara на вход А значение в текущем цикле программы, на вход В значение в предыдущем цикле.
Сообщение отредактировал cauto - 10.4.2019, 18:40
|
|
|
|
|
10.4.2019, 19:21
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(cauto @ 10.4.2019, 18:36)  Всё проще. В вашем варианте на входы А и В блока сравнения (СМР_long) приходят одинаковые значения, сравнивать по сути нечего. А у Ashihara на вход А значение в текущем цикле программы, на вход В значение в предыдущем цикле.
SMLogix____trim5.psl_.jpg ( 63,79 килобайт )
Кол-во скачиваний: 7Ещё проще вариант, совсем без компаратора. Ashihara подсказал направление, спасибо ему огромное, а там уже само как-то получилось. Ну и действительно левее, правее имеет значение, в программе несколько счётчиков, логика по сути одинаковая, а расположение блоков на поле рандомное, работает по разному - одни обнуляются, другие нет. ))
Сообщение отредактировал Сергей А. Ефремов - 10.4.2019, 19:22
|
|
|
|
|
11.4.2019, 9:33
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(Сергей А. Ефремов @ 10.4.2019, 19:21)  Ещё проще вариант, совсем без компаратора. Этот вариант неправильно ошибки считает. Он просто "что-то считает", но не более того.
|
|
|
|
|
11.4.2019, 10:26
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(Ashihara @ 11.4.2019, 9:33)  Этот вариант неправильно ошибки считает. Он просто "что-то считает", но не более того. Да вроде правильно... Прежде чем начинается сложение на вход С приходит 0 и на выходе Q фиксируется значение A+B, так как в самом начале это 0, то Q=0. Далее происходит сложение этого 0 и значения Errors и прежде чем сложение заканчивается на вход С приходит 1, блок пробрасывает значение D равное А+В на выход Q, которое в свою очередь отправляется на вход B, но так как к этому моменту уже Errors=0=A, то получается A+B=B. Далее цикл повторяется, только уже B не 0, а В=А+В в предыдущем цикле. Как именно утроен ваш алгоритм не особо разобрался, но смысл у него абсолютно тот же самый, в этом можно даже не сомневаться. В любом случае вам огромное спасибо за подсказку в использовании D-триггера.
|
|
|
|
|
11.4.2019, 14:21
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Коллеги, подскажите по случаю. Сколько терминаторов должно быть на линии RS485? В начале и в конце линии или только в конце?
|
|
|
|
|
11.4.2019, 14:30
|
Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014

|
Цитата(Сергей А. Ефремов @ 11.4.2019, 14:21)  Коллеги, подскажите по случаю. Сколько терминаторов должно быть на линии RS485? В начале и в конце линии или только в конце? Чем больше - тем лучше. Если серьезно, читайте первоисточник. Modbus_over_serial_line_V1_02
|
|
|
|
|
11.4.2019, 14:30
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Ещё такой вопрос, с чем может быть связано, что без терминатора наблюдается перекос на линии, на А 1,9В, а на В 1,6В? С терминатором выравнивается до 1,8-1,7В...
|
|
|
|
|
11.4.2019, 14:45
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(stscat @ 11.4.2019, 14:30)  Чем больше - тем лучше. Если серьезно, читайте первоисточник. Modbus_over_serial_line_V1_02Спасибо, полезный документ.
|
|
|
|
|
11.4.2019, 16:33
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Трим5 генерирует в RS485 помеху с интервалом 18мкс и амплитудой 500мВ - с чем это интересно связано? Ну и соответственно если помеха попадает на фронт какого-нибудь бита, то посылка в некоторых случаях портится.
Даже 800 мВ! Ёшкин-матрёшкин.
|
|
|
|
|
11.4.2019, 16:49
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Цитата(Сергей А. Ефремов @ 11.4.2019, 16:33)  Трим5 генерирует в RS485 помеху с интервалом 18мкс и амплитудой 500мВ - с чем это интересно связано? Как проверяете?
|
|
|
|
|
11.4.2019, 17:18
|
Группа: Участники форума
Сообщений: 2959
Регистрация: 10.7.2012
Из: Нижний Новгород
Пользователь №: 156204

|
Цитата(Ashihara @ 11.4.2019, 16:49)  Как проверяете? Осцилографом. С подключенными и без устройств на линии результат одинаковый, кроме самих командных запросов каждые 18 мкс на линии образуется помеха амплитудой до 800 мВ. По идее 500 мВ - это уже уровень логической единицы.
|
|
|
|
|
12.4.2019, 6:27
|
Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014

|
Если trim 5 не использовать помехи нет? Выложите картинку с осциллографа. Одновременно обе линии A и B и чтобы сетки и размерности напряжения видны были.
|
|
|
|
|
12.4.2019, 10:53
|
Двойных полосок злой фанат!
Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099

|
Я заморочился, интересно было. Всё ок вроде. Линии А и В, красный - разностный.
t5_rs485.jpg ( 153,14 килобайт )
Кол-во скачиваний: 15
|
|
|
|
|
12.4.2019, 11:24
|
Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014

|
Цитата(Ashihara @ 12.4.2019, 10:53)  Я заморочился, интересно было. Всё ок вроде. Линии А и В, красный - разностный.
t5_rs485.jpg ( 153,14 килобайт )
Кол-во скачиваний: 15Прекрасные сигналы. Никаких помех не вижу.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
ООО "Русич" ИНН 9721068883 / ЕРИД 2Vtzqx9HerZ
ООО «УНИСПЛИТ» ИНН: 6453155081 erid: 2VtzqvmjJqS
ООО "АйДи-Электро" ИНН:6670013662 erid:2Vtzqwtpv5j
Последние сообщения Форума
|