Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2021, 13:08   #1
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Преобразование последовательности импульсов

Здравствуйте, уважаемые форумчане. Нужен опытный взгляд на поставленную задачу. Необходимо преобразовать сигнал от старой системы телемеханики. ( Не спрашивайте зачем)
Решил я попробовать сделать это на контроллерах Segnetics. В наличии SMH4+MC0202-01-0.

К системе мы можем подключится посредством 3 проводов. 1 ТС, 2 ТУ.
Подключаюсь с помощью дискретного входа (высокочастотного) и двух выходов.( уровни согласованы)

Электрический код представляет собой последовательность импульсов и пауз определённой длины.
Для ТС:
СДИ - сверх длинный импульс - 260 мс - начало и конец посылки.
ДИ(П)- длинный импульс/пауза - 120 мс - логическая 1
КИ(П)- короткий импульс/пауза - 18-20 мс - логический 0
Для ТУ:
СДИ - сверх длинный импульс - 370 мс - начало и конец посылки
ДИ(П)- длинный импульс - 170 мс - логическая 1
КИ - 20 мс - логический 0
КП - 28 мс - разделитель

Задача достаточно простая. Начнём с ТС. Накидал проект в Лоджике 3.30. Его прикрепил.
В общем то проблема в том, что фронты КИ/КП проглатываются лоджиком и сдвиговый регистр не отрабатывает, что в итоге приводит к тому что посылка расшифровывается не верно.
Если увеличить длину КИ/КП то программа расшифровывает верно.

И тут у меня возник вопрос, это я криворукий или ограничение среды SMLogix в 10 мс мне палки в колёса вставляет. Склоняюсь конечно, к 2 варианту, но мало ли я что то упускаю... по неопытности.

Поэтому от чистого сердца прошу проконсультировать меня и наставить на путь истинный. Подведу небольшой итог:
1)Верно ли написана моя программа, или есть косяк который всё портит?
2)Если проблема всё таки не во мне,а в лоджике, есть ли способы решения данной задачи вне лоджика? т.е. написать на С, фбд блок который будет расшифровывать и присылать в лоджик информацию о посылке. И как это будет проще всего сделать?
3) Буду рад любым советам и помощи

P.S. об ограничении тика в 10 мс, когда то мне нашептал Арсений.
P.S. Посылка ТС состоит из 63 импульсов и пауз.
Вложения
Тип файла: psl дешифратор ТС.psl (370.4 Кбайт, 17 просмотров)

Последний раз редактировалось Shurion, 27.03.2021 в 13:35
Shurion вне форума   Ответить с цитированием
Старый 28.03.2021, 21:18   #2
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение

2)Если проблема всё таки не во мне
UPDATE: похоже всё таки во мне, опыты показали что лоджик все ловит)
Но иногда сдвиговый регистр не регает фронты, - как я понял это связанно с тем что я неправильно считаю СДИ (начало и конец) посылки. Продолжаю работать, всё ещё жду советов

P.s. Версия которую я выложил уже не актуальна, но логику работы понять можно
Shurion вне форума   Ответить с цитированием
Старый 29.03.2021, 11:48   #3
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 335
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

С помощью отладчика пробовали свою проблему решить?


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 29.03.2021, 12:05   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Здравствуйте, уважаемые форумчане. Нужен опытный взгляд на поставленную задачу.
Советую использовать не DIN, а счётный вход. И анализировать изменение счётчика. Так вы точно ничего не пропустите и легче будет отлаживаться.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 29.03.2021, 14:38   #5
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
С помощью отладчика пробовали свою проблему решить?
Идея была, но решил пока не пользоваться, т.к. судя по форуму этот релиз имеет кучу багов.
Shurion вне форума   Ответить с цитированием
Старый 29.03.2021, 14:57   #6
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Здравствуйте, уважаемые форумчане. Нужен опытный взгляд на поставленную задачу.
Во первых частота дискретизации должна быть более 2 Fверхней.
У Вас прям на пределе. Лучше взять 3F. Т.е. минимальная длительность импульса с учетом что нет никаких помех и сбоев должна быть 30 мс.
Ну и далее синхронизация, оптимальный фильтр, критерий правдоподобия и т.д. Ищите оптимальный (согласованный) цифровой фильтр.
В данном случае исходный сигнал попроще, поэтому автокорелляционная функция нуля и единицы будет так же простая.
Как то давно делал обработку DPSK сигнала на микроконтроллере. Простые методы не работают.
Я так понимаю на проверку аргументов да фигня это все Вы уже некоторое время затратили.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 29.03.2021, 16:09   #7
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от ujin Посмотреть сообщение
У Вас прям на пределе.
Да я в курсе, что на пределе.
Цитата:
Сообщение от ujin Посмотреть сообщение
Лучше взять 3F. Т.е. минимальная длительность импульса с учетом что нет никаких помех и сбоев должна быть 30 мс.
Ну я длительности не выбираю, они уже заданы.
Цитата:
Сообщение от ujin Посмотреть сообщение
В данном случае исходный сигнал попроще
Намного проще. Файлик приложил.

А чем грозит уменьшение цикла SmLogix до 5 мс?
Вложения
Тип файла: pdf ТС импульсы.pdf (60.4 Кбайт, 16 просмотров)
Shurion вне форума   Ответить с цитированием
Старый 29.03.2021, 16:20   #8
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов

Ваш сигнал? Накидал в Labview
Если понадобится промоделировать по науке, обращайтесь.
Изображения
Тип файла: jpg Синтез сигнала.jpg (142.9 Кбайт, 58 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 29.03.2021, 16:23   #9
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Да я в курсе, что на пределе.

Ну я длительности не выбираю, они уже заданы.

Намного проще. Файлик приложил.

А чем грозит уменьшение цикла SmLogix до 5 мс?
Аналог двухчастотной модуляции. Проще тем, что не синус, а бинарный код.
Следовательно свертка с бинарным кодом.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 29.03.2021, 16:25   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Намного проще. Файлик приложил.
По мне так надо ловить 120 мсек и выше, количество нулей явно покажет счётный вход, можно даже не ловить мелкие импульсы.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 29.03.2021, 16:26   #11
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Да я в курсе, что на пределе.

Ну я длительности не выбираю, они уже заданы.

Намного проще. Файлик приложил.

А чем грозит уменьшение цикла SmLogix до 5 мс?
Угадал с сигналом. Задача решаема.
Уменьшение цикла вопрос к производителю.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 29.03.2021, 20:12   #12
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Arsie Посмотреть сообщение
По мне так надо ловить 120 мсек и выше, количество нулей явно покажет счётный вход, можно даже не ловить мелкие импульсы.
Не совсем понимаю чем поможет счётный вход, если он регистрирует только количество импульсов.
Все импульсы и паузы несут информацию, в конце должно получится число длиной символов 126.

У меня в алгоритме по (отрицательному фронту) концу СДИ начинается запись в сдвиговый регистр.
Стоят два счётчика, один с инвертированным сигналом. Счётчики считают до 10, если досчитал, значит идёт ДИ что = 1. Если не успел, то его сбросит фронт.
Так же сдвиговый регистр на каждый фронт делает смещение с начала посылки.
Но по итогу бывает что то правильно он раасшифрует, то пропустит пару записей. Ладно завтра ставлю дебагер, с ним дело пойдёт быстрее, надеюсь.

И всё таки что произойдёт если я цикл сделаю 5 мс, какие последствия?


Добавлено через 3 минуты


Цитата:
Сообщение от ujin Посмотреть сообщение
Ваш сигнал? Накидал в Labview
Если понадобится промоделировать по науке, обращайтесь.
Да мой, похож, да и LabView тоже родной
Пару тройку установок делал на нём в университете.
Shurion вне форума   Ответить с цитированием
Старый 30.03.2021, 08:01   #13
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Не совсем понимаю чем поможет счётный вход, если он регистрирует только количество импульсов.
Все импульсы и паузы несут информацию, в конце должно получится число длиной символов 126.

У меня в алгоритме по (отрицательному фронту) концу СДИ начинается запись в сдвиговый регистр.
Стоят два счётчика, один с инвертированным сигналом. Счётчики считают до 10, если досчитал, значит идёт ДИ что = 1. Если не успел, то его сбросит фронт.
Так же сдвиговый регистр на каждый фронт делает смещение с начала посылки.
Но по итогу бывает что то правильно он раасшифрует, то пропустит пару записей. Ладно завтра ставлю дебагер, с ним дело пойдёт быстрее, надеюсь.

И всё таки что произойдёт если я цикл сделаю 5 мс, какие последствия?


Добавлено через 3 минуты




Да мой, похож, да и LabView тоже родной
Пару тройку установок делал на нём в университете.
Не похож предыдущий сигнал. Я понял по описанию, что между сигналами всегда пауза, а в картинке паузы нет. Получается относительная модуляция.
Плохое свойство сигнала, что базис не ортонормированный.
Т.е свертка сигнала соответствующего 0 и 1 не дают 0.
Несущая в этом случае плохо определяется, так как нет точного значения конца символа, это либо 20 мс либо 120.
На мой взгляд нужно ловить 3 символа
Старт (переход в 1, - 260 мс 1, переход в 0) - Свертка 28 тактов
1 (изменение, 120 мс, изменение) - свертка 14 тактов
0 (изменение, 20 мс, изменение) - свертка 4 тактов
По старту переходить к символам.
При приеме очередного символа устанавливать начало отсчета тактов.
Попробовать добавить джиттинг (изменение времени такта 18-22 мс).
При приеме всех символов определение конечного символа.
Проще в Labview 2020 смоделировать. Есть официальная бесплатная версия.
Генерацию я Вам набросал.
Вторая картинка в виде диаграммы - VI Snippet. Перетаскиваете картинку на поляну, получаете готовый код.
Что такое свертка, думаю помните.
Изображения
Тип файла: png Синтез сигнала 2.png (160.6 Кбайт, 16 просмотров)
Тип файла: png Синтез сигнала диаграмма.png (72.9 Кбайт, 26 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 30.03.2021, 09:01   #14
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 335
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
И всё таки что произойдёт если я цикл сделаю 5 мс, какие последствия?
.
Если контроллер, как в прикрепленном проекте, то там ограничение 10 мс.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 30.03.2021, 09:48   #15
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Если контроллер, как в прикрепленном проекте, то там ограничение 10 мс.
В конечном итоге будет куплен матрикс под эти задачи.
Странно тогда что лоджик даёт поставить меньше 10мс< и даже запускается и работает. И быстродействие действительно увеличивается)
Изображения
Тип файла: png тик.PNG (6.0 Кбайт, 3 просмотров)
Shurion вне форума   Ответить с цитированием
Старый 30.03.2021, 09:51   #16
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от ujin Посмотреть сообщение
Не похож предыдущий сигнал. Я понял по описанию, что между сигналами всегда пауза, а в картинке паузы нет. Получается относительная модуляция.
Плохое свойство сигнала, что базис не ортонормированный.
Т.е свертка сигнала соответствующего 0 и 1 не дают 0.
Несущая в этом случае плохо определяется, так как нет точного значения конца символа, это либо 20 мс либо 120.
На мой взгляд нужно ловить 3 символа
Старт (переход в 1, - 260 мс 1, переход в 0) - Свертка 28 тактов
1 (изменение, 120 мс, изменение) - свертка 14 тактов
0 (изменение, 20 мс, изменение) - свертка 4 тактов
По старту переходить к символам.
При приеме очередного символа устанавливать начало отсчета тактов.
Попробовать добавить джиттинг (изменение времени такта 18-22 мс).
При приеме всех символов определение конечного символа.
Проще в Labview 2020 смоделировать. Есть официальная бесплатная версия.
Генерацию я Вам набросал.
Вторая картинка в виде диаграммы - VI Snippet. Перетаскиваете картинку на поляну, получаете готовый код.
Что такое свертка, думаю помните.
Спасибо.
Shurion вне форума   Ответить с цитированием
Старый 30.03.2021, 10:27   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
И всё таки что произойдёт если я цикл сделаю 5 мс, какие последствия?
Ничего хорошего для вашей задачи.


Добавлено через 3 минуты


Цитата:
Сообщение от Shurion Посмотреть сообщение
Не совсем понимаю чем поможет счётный вход, если он регистрирует только количество импульсов.
Тем, что не имея необходимости отлавливать 20 мсек вы всегда будете знать их количество. Это сильно снижает требования к времени цикла.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 30.03.2021, 10:45   #18
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 335
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
В конечном итоге будет куплен матрикс под эти задачи.
Странно тогда что лоджик даёт поставить меньше 10мс< и даже запускается и работает. И быстродействие действительно увеличивается)
Понаблюдайте за блоком realtick и сравните его с settick, по хорошему он должен быть меньше 30% последнего.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 30.03.2021, 10:57   #19
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Понаблюдайте за блоком realtick и сравните его с settick, по хорошему он должен быть меньше 30% последнего.
realtick 3-4, settick 5.

В общем получается что в таком случае, нет подушки безопасности и если что то пойдёт не так, то будет беда?

А у матрикса какой минимальный тик?
Shurion вне форума   Ответить с цитированием
Старый 30.03.2021, 11:02   #20
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
realtick 3-4, settick 5.

В общем получается что в таком случае, нет подушки безопасности и если что то пойдёт не так, то будет беда?

А у матрикса какой минимальный тик?
10 у всех современных.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 30.03.2021, 11:04   #21
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 335
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
realtick 3-4, settick 5.

В общем получается что в таком случае, нет подушки безопасности и если что то пойдёт не так, то будет беда?
Тик растянется. Можете еще попробовать зафиксировать максимальное значение реалтика, мне кажется оно будет больше.

Цитата:
А у матрикса какой минимальный тик?
Так зависит от того насколько нагрузите проект.

https://forum.segnetics.com/showthread.php?t=2695


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 31.03.2021, 12:47   #22
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
С помощью отладчика пробовали свою проблему решить?
Отладчик конечно пушка, спасибо! Изучение программы с отладчиком позволило найти проблему и она заключается в том, что приходящий сигнал искажается.

Опыт я проводил так:
к прошлому SMH4 с модулем расширения добавил ещё один для формирования сигнала.
Соединил DI7(счётный вход) первого и DO2(оптореле) второго между собой, добавив светодиод с резистором для индикации.

Сформировал укороченный сигнал, по формату соответствующий моему. Проверил длительности импульсов и пауз сформированного сигнала на соответствие с помощью осциллографа. Длительности получились то что надо.

Дальше в дело вступил отладчик, см. приложение.
Отправленный сигнал - это то что я снял дебагером со второго ПЛК. В реальности сигнал получается +10 мс к длительности каждого импульса.
т.е. 10 мс+10 мс = 20 мс - короткий импульс или пауза
В итоге получился идеальный сигнал - кто не верит могу csv с осциллографа прислать.

Полученный сигнал это сигнал снятый с счётного входа.
Начало и конец посылки это выход с счётчика для определения СДИ
Фронт на сдвиговый регистр это сигнал приходящий на вход ^
Счётчик ДИ/ДП - ловит длинные импульсы и паузы

Зелёным я отметил верные срабатывания, синим ошибки.
Вдобавок красной линией выделил проблемные места.

Как удалось установить программа работает правильно, но при возникновении очень короткой паузы, фронт не успевает сбросить своё состояние.

Осталось выяснить в чём причина искажения сигнала? Цикл опроса в 10 мс?
Хотя на 5 мс тоже самое
Изображения
Тип файла: png 1.png (35.0 Кбайт, 30 просмотров)

Последний раз редактировалось Shurion, 31.03.2021 в 12:59
Shurion вне форума   Ответить с цитированием
Старый 01.04.2021, 14:14   #23
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Осталось выяснить в чём причина искажения сигнала? Цикл опроса в 10 мс?
Хотя на 5 мс тоже самое
Искажений не может не быть.
Так же как не должно быть особых проблем. Если сделать все как в школе учили у меня на вскидку работает.
Причем с джиттером +- 7 мс и тактом приема 10 мс. На видео заметно сильно неодинаковые символы.
Прием и декодирование сигнала
Свертка с 0, свертка с 1, стартовый импульс, проверки всякие, критерии правдоподобия.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 02.04.2021, 00:17   #24
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от ujin Посмотреть сообщение
Искажений не может не быть.
Так же как не должно быть особых проблем. Если сделать все как в школе учили у меня на вскидку работает.
Причем с джиттером +- 7 мс и тактом приема 10 мс. На видео заметно сильно неодинаковые символы.
Прием и декодирование сигнала
Свертка с 0, свертка с 1, стартовый импульс, проверки всякие, критерии правдоподобия.
Понятно что задача решаема, но не в SmLogix. Задачу уже решили, тему можно закрывать.
Shurion вне форума   Ответить с цитированием
Старый 02.04.2021, 09:26   #25
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Понятно что задача решаема, но не в SmLogix.
Задача-то как раз решаема, лоджик конкретно в этой ситуации ни при чём.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.04.2021, 10:13   #26
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Arsie Посмотреть сообщение
Задача-то как раз решаема, лоджик конкретно в этой ситуации ни при чём.
Можете мне тогда накидать краткий пример, как это сделать только в лоджике? или намекнуть хотябы.
Чтобы я не делал, только средствами лоджика не вышло.
Shurion вне форума   Ответить с цитированием
Старый 02.04.2021, 10:51   #27
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
Можете мне тогда накидать краткий пример, как это сделать только в лоджике? или намекнуть хотябы.
Чтобы я не делал, только средствами лоджика не вышло.
Я уже намекал, что короткие импульсы считал бы счётчиком. Точнее, считались бы все, но длинные импульсы отлавливаются надёжно, поэтому их можно вычитать из счётчика.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.04.2021, 11:58   #28
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Arsie Посмотреть сообщение
Я уже намекал, что короткие импульсы считал бы счётчиком. Точнее, считались бы все, но длинные импульсы отлавливаются надёжно, поэтому их можно вычитать из счётчика.
А что насчёт длинных пауз?
Shurion вне форума   Ответить с цитированием
Старый 02.04.2021, 12:00   #29
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Shurion Посмотреть сообщение
А что насчёт длинных пауз?
А чем длинная пауза отличается от длинного импульса?

Смысл использования счётчика исключительно в том, чтобы гарантированно не пропустить короткий импульс.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.04.2021, 12:38   #30
Shurion
Senior Member
 
Регистрация: Sep 2019
Адрес: SPb
Сообщения: 178
Благодарил(а): 12 раз(а)
Поблагодарили: 18 раз(а) в 18 сообщениях
По умолчанию Ответ: Преобразование последовательности импульсов.

Цитата:
Сообщение от Arsie Посмотреть сообщение
А чем длинная пауза отличается от длинного импульса?

Смысл использования счётчика исключительно в том, чтобы гарантированно не пропустить короткий импульс.
Да ничем кроме уровня сигнала, всё та же логическая 1.
Используя счётный вход мы можем контролировать длину посылки.
Если он посчитал меньше или больше 63, значит посылка неправильная.

Вы предлагаете вычитать из этого количество длинных импульсов? или что? я не совсем понимаю ваш ход мыслей.
Или запоминать состояние счётного входа когда был обнаружен длинный импульс?
Shurion вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 08:39.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024