Segnetics

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2020, 12:07   #1
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
Exclamation Размышления на тему групповых триггеров

Триггер до 255 положений.
Вложения
Тип файла: msl Триггер 255_1.msl (14.9 Кбайт, 21 просмотров)

Последний раз редактировалось boxmen77, 14.01.2020 в 12:30
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 12:26   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
Триггер до 255 положений.
Стробируемый регистр нужно на защёлку поменять, иначе негодная схема

На тот, что без галочки.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 12:31   #3
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Стробируемый регистр нужно на защёлку поменять, иначе негодная схема

На тот, что без галочки.
Заменил, хотя проверял, работало.
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 12:38   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
Заменил, хотя проверял, работало.
Если расстояние между соседними сигналами будет менее 2 тиков, то второй и последующие такие сигналы будут пропущены. Этот сценарий вы тестировали?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 12:48   #5
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

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

Последний раз редактировалось Arsie, 14.01.2020 в 13:20
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 13:04   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

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

Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.png
Просмотров: 338
Размер:  4.4 Кбайт  


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 14.01.2020 в 13:40
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 13:20   #7
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
PRCD не даст нескольким сработать.
Если не снимая 1 со второго входа подать 1 на первый?
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 13:37   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
Если не снимая 1 со второго входа подать 1 на первый?
Смотря какой приоритет выставлен в PRCD. В вашем случае второй по счёту проигнорируется, в моём случае переключится, если последующий имеет приоритет.

Если нужен триггер типа "Последний фронт", то нужно взять из библиотеки разработчика 16Raise и далее через триггер с моего скриншота. Тогда выходы Q покажут, по какому из входов пришёл последний фронт.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 13:54   #9
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Если нужен триггер типа "Последний фронт", то нужно взять из библиотеки разработчика 16Raise и далее через триггер с моего скриншота. Тогда выходы Q покажут, по какому из входов пришёл последний фронт.
Попробовал, единственное ограничение в 16(32) входа.
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 13:59   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
Попробовал, единственное ограничение в 16(32) входа.
Ограничение - это 255 входов PRCD и DC. Райзов можно и несколько поставить рядом.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 14:26   #11
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ограничение - это 255 входов PRCD и DC. Райзов можно и несколько поставить рядом.
Работает, главное одновременно на разные райзы не подавать сигнал. Иначе PRCD подведет.
Хотя с одним райзом тоже.
В общем вариант с PRCD не расчитан на одновременный сигнал на несколько входов.
А 6 стабильный из библиотеки при этих же условиях вообще не срабатывает.
boxmen77 вне форума   Ответить с цитированием
Старый 14.01.2020, 14:51   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
Работает, главное одновременно на разные райзы не подавать сигнал. Иначе PRCD подведет.
В программировании нет понятия "подведёт". Есть граф состояний, алгоритм его выполняет. Если алгоритм "подвёл", то не алгоритм виноват, а недальновидность алгоритмиста, разработавшего неправильный алгоритм. Не подходящий под задачу.

В данном случае как-то решать коллизию нескольких одновременных сигналов нужно. PRCD её решает любым из двух способов на выбор. Вы можете предложить третий способ?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 14.01.2020, 15:19   #13
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

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

В данном случае как-то решать коллизию нескольких одновременных сигналов нужно. PRCD её решает любым из двух способов на выбор. Вы можете предложить третий способ?
Если только блокировать одновременные сигналы. А так правда ваша, все зависит от алгоритма.
boxmen77 вне форума   Ответить с цитированием
Старый 15.01.2020, 12:09   #14
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

А такой вариант как? Макрос числа включенных бит из библиотеки. Одновременные сигналы игнорируются.
Миниатюры
Нажмите на картинку для увеличения

Название:  2020-01-15_11-03-58.png
Просмотров: 49
Размер:  14.0 Кбайт  
boxmen77 вне форума   Ответить с цитированием
Старый 15.01.2020, 12:43   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

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


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.01.2020, 12:47   #16
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Т.е. если сигналы пришли одновременно, состояние выходов не изменяется? Т.е. включенный выход не отключается, выключенные не включаются?
В данном случае да. Но в этой схеме можно изобразить любой алгоритм при одновременном приходе более одного сигнала. А главное масштабируемость безграничная.
boxmen77 вне форума   Ответить с цитированием
Старый 15.01.2020, 12:54   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
В данном случае да. Но в этой схеме можно изобразить любой алгоритм при одновременном приходе более одного сигнала. А главное масштабируемость безграничная.
Нет, любой невозможно) Если требуется соблюсти приоритет (как в PRCD, например), то схема становится полностью неработоспособной.

Эта схема подходит только для игнорирования одновременных.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.01.2020, 12:55   #18
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от boxmen77 Посмотреть сообщение
В данном случае да. Но в этой схеме можно изобразить любой алгоритм при одновременном приходе более одного сигнала. А главное масштабируемость безграничная.
Такое заблочит одновременные нажатия, там еще задержка выставляется.
Нажмите на картинку для увеличения

Название:  блок.png
Просмотров: 54
Размер:  84.1 Кбайт
Вложения
Тип файла: msl -11-.msl (17.5 Кбайт, 5 просмотров)
RomanIst вне форума   Ответить с цитированием
Старый 15.01.2020, 13:19   #19
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нет, любой невозможно) Если требуется соблюсти приоритет (как в PRCD, например), то схема становится полностью неработоспособной.

Эта схема подходит только для игнорирования одновременных.
Вот теперь из двух можно собрать универсальный с выбором алгоритма обработки)
boxmen77 вне форума   Ответить с цитированием
Старый 15.01.2020, 17:39   #20
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Размышления на тему групповых триггеров

Как то так.
Миниатюры
Нажмите на картинку для увеличения

Название:  2020-01-15_16-36-52.png
Просмотров: 51
Размер:  43.4 Кбайт  
boxmen77 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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



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


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