Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Fbd, Trim5
Сергей А. Ефремо...
сообщение 9.4.2019, 20:00
Сообщение #1





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



Подскажите, если кто знает, как сделать счётчик с нарастающим итогом? В программе есть контрольный блок связи, который выдаёт количество не отвеченных запросов по Modbus от конкретного устройства. После того как устройство хоть раз ответило, счётчик обнуляется, а надо чтоб не обнулялся. Блок называется Slave (Link), сам он так делать не умеет, а просто выдаёт количество зафиксированных подряд ошибок связи. Вот как их можно суммировать за всё время работы устройства с момента включения питания?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
По самые по...
сообщение 9.4.2019, 20:45
Сообщение #2





Группа: Участники форума
Сообщений: 3711
Регистрация: 6.9.2007
Пользователь №: 11117



Цитата(Сергей А. Ефремов @ 9.4.2019, 20:00) *
Подскажите, если кто знает, как сделать счётчик с нарастающим итогом? В программе есть контрольный блок связи, который выдаёт количество не отвеченных запросов по Modbus от конкретного устройства. После того как устройство хоть раз ответило, счётчик обнуляется, а надо чтоб не обнулялся. Блок называется Slave (Link), сам он так делать не умеет, а просто выдаёт количество зафиксированных подряд ошибок связи. Вот как их можно суммировать за всё время работы устройства с момента включения питания?


За 10лет или 100лет, или 1000.., или...? Глупости морозите..
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
stscat
сообщение 10.4.2019, 6:38
Сообщение #3





Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014



На нормальном языке решается в 4 строчки, попробуйте перевести в свой придуманный язык.

if (cnt1_pre != cnt1)
{
if (cnt1_pre < cnt1)
cnt2 += cnt1 - cnt1_pre;
cnt1_pre = cnt1;
}
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 10.4.2019, 9:26
Сообщение #4


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 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


В принципе, и мою программу можно упростить, сравнивая входящее значение с нулём, а не с предыдущим значением. Минус один блок.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
stscat
сообщение 10.4.2019, 9:35
Сообщение #5





Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014



Ну вот Ashihara все сделал за Ефремова. Дословный перевод моего примера.

Ashihara, интересен ваш вариант кода на C)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 10.4.2019, 10:05
Сообщение #6


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Цитата(stscat @ 10.4.2019, 9:35) *
Ashihara, интересен ваш вариант кода на C)


Померяемся как-нибудь в другой раз wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 11:05
Сообщение #7





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



Цитата(Ashihara @ 10.4.2019, 9:26) *
Прикрепленный файл  ________________.png ( 9,13 килобайт ) Кол-во скачиваний: 60


В принципе, и мою программу можно упростить, сравнивая входящее значение с нулём, а не с предыдущим значением. Минус один блок.

Проверил - не работает....

После того как связь восстанавливается всё обнуляется.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 10.4.2019, 11:05
Сообщение #8


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Цитата(Сергей А. Ефремов @ 10.4.2019, 11:03) *
Проверил - не работает....


Порядок блоков очень важен. Какие левее, какие правее. Иначе да, работать не будет.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 11:50
Сообщение #9





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



Цитата(dopi @ 10.4.2019, 11:34) *
при сбросе питания счетчик обнулится

Схема обнуляется после восстановления связи на линии, а не пропадания питания, то есть по сути никак не влияет на работу первоначального блока.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
cauto
сообщение 10.4.2019, 12:25
Сообщение #10





Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184



Цитата(Сергей А. Ефремов @ 10.4.2019, 11:50) *
Схема обнуляется после восстановления связи на линии, а не пропадания питания, то есть по сути никак не влияет на работу первоначального блока.
И ничего там после восстановления связи не обнуляется. rolleyes.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 13:15
Сообщение #11





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



хз

Сообщение отредактировал Сергей А. Ефремов - 10.4.2019, 13:27
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 10.4.2019, 13:32
Сообщение #12


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Цитата(Сергей А. Ефремов @ 10.4.2019, 13:15) *
хз


Я проверил, прежде чем выложить. Так что соберите волю в кулак, распечатайте мою схему на листик, листик приложите к монитору и соберите свою схему один-в-один. Будет работать. Обещаю.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 17:49
Сообщение #13





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



Прикрепленный файл  SMLogix____trim5.psl_.jpg ( 124,82 килобайт ) Кол-во скачиваний: 10


Может что-то не так делаю?...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
cauto
сообщение 10.4.2019, 17:55
Сообщение #14





Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184



Цитата(Сергей А. Ефремов @ 10.4.2019, 17:49) *
Может что-то не так делаю?...
Естественно не так. rolleyes.gif
Цитата(Ashihara @ 10.4.2019, 11:05) *
Порядок блоков очень важен. Какие левее, какие правее. Иначе да, работать не будет.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 18:07
Сообщение #15





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



Прикрепленный файл  SMLogix____trim5.psl_.jpg ( 63,79 килобайт ) Кол-во скачиваний: 10


Так работает.

Цитата(cauto @ 10.4.2019, 17:55) *
Естественно не так. rolleyes.gif

Левее, правее... момент зарождения сознания происходит в момент осознания сознанием своей способности осознавать, вы это имеете в виду что-ли?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
cauto
сообщение 10.4.2019, 18:36
Сообщение #16





Группа: Участники форума
Сообщений: 1854
Регистрация: 23.6.2009
Пользователь №: 35184



Цитата(Сергей А. Ефремов @ 10.4.2019, 18:07) *
Левее, правее... момент зарождения сознания происходит в момент осознания сознанием своей способности осознавать, вы это имеете в виду что-ли?
Всё проще. В вашем варианте на входы А и В блока сравнения (СМР_long) приходят одинаковые значения, сравнивать по сути нечего. А у Ashihara на вход А значение в текущем цикле программы, на вход В значение в предыдущем цикле.

Сообщение отредактировал cauto - 10.4.2019, 18:40
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 10.4.2019, 19:21
Сообщение #17





Группа: Участники форума
Сообщений: 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 11.4.2019, 9:33
Сообщение #18


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Цитата(Сергей А. Ефремов @ 10.4.2019, 19:21) *
Ещё проще вариант, совсем без компаратора.


Этот вариант неправильно ошибки считает. Он просто "что-то считает", но не более того.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 11.4.2019, 10:26
Сообщение #19





Группа: Участники форума
Сообщений: 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
Сообщение #20





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



Коллеги, подскажите по случаю. Сколько терминаторов должно быть на линии RS485? В начале и в конце линии или только в конце?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
stscat
сообщение 11.4.2019, 14:30
Сообщение #21





Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014



Цитата(Сергей А. Ефремов @ 11.4.2019, 14:21) *
Коллеги, подскажите по случаю. Сколько терминаторов должно быть на линии RS485? В начале и в конце линии или только в конце?


Чем больше - тем лучше.
Если серьезно, читайте первоисточник.
Modbus_over_serial_line_V1_02
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 11.4.2019, 14:30
Сообщение #22





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



Ещё такой вопрос, с чем может быть связано, что без терминатора наблюдается перекос на линии, на А 1,9В, а на В 1,6В? С терминатором выравнивается до 1,8-1,7В...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 11.4.2019, 14:45
Сообщение #23





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



Цитата(stscat @ 11.4.2019, 14:30) *
Чем больше - тем лучше.
Если серьезно, читайте первоисточник.
Modbus_over_serial_line_V1_02

Спасибо, полезный документ.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 11.4.2019, 16:33
Сообщение #24





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



Трим5 генерирует в RS485 помеху с интервалом 18мкс и амплитудой 500мВ - с чем это интересно связано? Ну и соответственно если помеха попадает на фронт какого-нибудь бита, то посылка в некоторых случаях портится.

Даже 800 мВ! Ёшкин-матрёшкин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 11.4.2019, 16:49
Сообщение #25


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Цитата(Сергей А. Ефремов @ 11.4.2019, 16:33) *
Трим5 генерирует в RS485 помеху с интервалом 18мкс и амплитудой 500мВ - с чем это интересно связано?


Как проверяете?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 11.4.2019, 17:18
Сообщение #26





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



Цитата(Ashihara @ 11.4.2019, 16:49) *
Как проверяете?

Осцилографом. С подключенными и без устройств на линии результат одинаковый, кроме самих командных запросов каждые 18 мкс на линии образуется помеха амплитудой до 800 мВ. По идее 500 мВ - это уже уровень логической единицы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
stscat
сообщение 12.4.2019, 6:27
Сообщение #27





Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014



Если trim 5 не использовать помехи нет?
Выложите картинку с осциллографа. Одновременно обе линии A и B и чтобы сетки и размерности напряжения видны были.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ashihara
сообщение 12.4.2019, 10:53
Сообщение #28


Двойных полосок злой фанат!


Группа: Участники форума
Сообщений: 3630
Регистрация: 8.12.2006
Из: СПб
Пользователь №: 5099



Я заморочился, интересно было. Всё ок вроде.

Линии А и В, красный - разностный.


Прикрепленный файл  t5_rs485.jpg ( 153,14 килобайт ) Кол-во скачиваний: 15
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
stscat
сообщение 12.4.2019, 11:24
Сообщение #29





Группа: Участники форума
Сообщений: 271
Регистрация: 7.8.2015
Из: Москва
Пользователь №: 275014



Цитата(Ashihara @ 12.4.2019, 10:53) *
Я заморочился, интересно было. Всё ок вроде.

Линии А и В, красный - разностный.


Прикрепленный файл  t5_rs485.jpg ( 153,14 килобайт ) Кол-во скачиваний: 15


Прекрасные сигналы. Никаких помех не вижу.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Сергей А. Ефремо...
сообщение 12.4.2019, 12:54
Сообщение #30





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



Прикрепленный файл  20190412_113223.jpg ( 2,94 мегабайт ) Кол-во скачиваний: 11

Прикрепленный файл  20190412_113235.jpg ( 2,87 мегабайт ) Кол-во скачиваний: 9

Прикрепленный файл  20190412_113323.jpg ( 2,84 мегабайт ) Кол-во скачиваний: 7

Прикрепленный файл  20190412_113450.jpg ( 3,14 мегабайт ) Кол-во скачиваний: 9
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274



ООО "Русич" ИНН 9721068883 / ЕРИД 2Vtzqx9HerZ


ООО «УНИСПЛИТ» ИНН: 6453155081 erid: 2VtzqvmjJqS

ООО "АйДи-Электро" ИНН:6670013662 erid:2Vtzqwtpv5j

Последние сообщения Форума






RSS Текстовая версия Сейчас: 20.6.2025, 17:37
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных