Здравствуйте.
Давно хотел задать вопрос.
Не вижу разницы в STEP-7 между битовыми функциями N, P и NEG, POS соответственно. Подскажите. Как по мне, так они делают одно и тоже.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Разница между P и POS в STEP-7
-
- здесь недавно
- Сообщения: 10
- Зарегистрирован: 23 дек 2017, 22:13
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Гомель
-
- почётный участник форума
- Сообщения: 3577
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Разница между P и POS в STEP-7
В ТИА Портале их уже 6 штук, добавились R-TRIG, F-TRIG (rising, falling).
Отправлено спустя 16 минут 28 секунд:
Извините, там 8 детекторов фронтов, а именно:
-|P|-, -|N|- сканирует фронт операнда и передаёт в RLO.
-(P)-, -(N)- сканирует фронт RLO и передаёт в операнд
P_TRIG, N_TRIG сканирует фронт RLO и передаёт в RLO
F_TRIG, R_TRIG сканирует фронт RLO и передаёт в DB
Отправлено спустя 2 минуты 44 секунды:
N, P, NEG, POS - это то, что в строчках 1 и 3.
Я обычно использую P_TRIG, N_TRIG.
Отправлено спустя 16 минут 28 секунд:
Извините, там 8 детекторов фронтов, а именно:
-|P|-, -|N|- сканирует фронт операнда и передаёт в RLO.
-(P)-, -(N)- сканирует фронт RLO и передаёт в операнд
P_TRIG, N_TRIG сканирует фронт RLO и передаёт в RLO
F_TRIG, R_TRIG сканирует фронт RLO и передаёт в DB
Отправлено спустя 2 минуты 44 секунды:
N, P, NEG, POS - это то, что в строчках 1 и 3.
Я обычно использую P_TRIG, N_TRIG.
-
- почётный участник форума
- Сообщения: 3577
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Разница между P и POS в STEP-7
Давно сам хотел резюмировать на тему, какой из вариантов детекции фронта лучше.
В любом из вариантов нужно создать булеву переменную для работы фронта, все 8 вариантов это требуют. Каждая такая переменная используется только один раз в программе, только в этом фронте. В S7-200 такую переменную создавать не требовалось, ибо это реально технический момент, не связанный с программированием. (Кстати, никто не пробовал одну переменную фронта использовать в двух и более фронтах?)
Итак, смотрим дальше: для -|P|-, -|N|-, -(P)-, -(N)- нужно задать ещё вторую переменную-операнд, а для F_TRIG, R_TRIG нужно создать датаблок. Именно поэтому я люблю P_TRIG, N_TRIG, в этом варианте задал переменную фронта и готово.
Иногда требуется один и тот же детектор фронта использовать два и более раза в программе (нечасто, менее чем в 5% случаев, но все же). По идее, самый короткий способ сделать это -(P)-, -(N)-, но я по привычке использую P_TRIG, N_TRIG - просто добавил катушку на выход и готово.
Когда-то использовал -|P|-, -|N|-, но постоянно ошибался в логике работы. Этот вариант удобен тем, что это эквивалент обычного контакта, который можно запихнуть в любую часть релейной цепочки. У P_TRIG, N_TRIG есть ограничения в этом плане...
F_TRIG, R_TRIG - это для любителя датаблоков...
В любом из вариантов нужно создать булеву переменную для работы фронта, все 8 вариантов это требуют. Каждая такая переменная используется только один раз в программе, только в этом фронте. В S7-200 такую переменную создавать не требовалось, ибо это реально технический момент, не связанный с программированием. (Кстати, никто не пробовал одну переменную фронта использовать в двух и более фронтах?)
Итак, смотрим дальше: для -|P|-, -|N|-, -(P)-, -(N)- нужно задать ещё вторую переменную-операнд, а для F_TRIG, R_TRIG нужно создать датаблок. Именно поэтому я люблю P_TRIG, N_TRIG, в этом варианте задал переменную фронта и готово.
Иногда требуется один и тот же детектор фронта использовать два и более раза в программе (нечасто, менее чем в 5% случаев, но все же). По идее, самый короткий способ сделать это -(P)-, -(N)-, но я по привычке использую P_TRIG, N_TRIG - просто добавил катушку на выход и готово.
Когда-то использовал -|P|-, -|N|-, но постоянно ошибался в логике работы. Этот вариант удобен тем, что это эквивалент обычного контакта, который можно запихнуть в любую часть релейной цепочки. У P_TRIG, N_TRIG есть ограничения в этом плане...
F_TRIG, R_TRIG - это для любителя датаблоков...
-
- здесь недавно
- Сообщения: 10
- Зарегистрирован: 23 дек 2017, 22:13
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Гомель
Разница между P и POS в STEP-7
Если я вас правильно понял, то я пробовал - не работает ))
Отправлено спустя 13 минут 29 секунд:
Но все таки NEG не аналог N_TRIG. N_TRIG в TIA-Portal сканирует фронт RLO, а NEG в классической версии STEP7 проверяет фронт по указанному адресу (Address Edge Detection).
И еще в TIA v16 только 4 функции для работы с фронтами. По крайней мере для CPU 315. Возможно для других ЦПУ выбор инструкций и будет больший.
-
- read only
- Сообщения: 577
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 17 раз
- Поблагодарили: 77 раз
Разница между P и POS в STEP-7
Может все такое разнообразие связано разными языками программирования?