Сравнение чисел

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Сравнение чисел

Сообщение and909 »

Странно вы пытаетесь отследить увеличение количества аварий через арифметическую величину числа. :roll:
Веса-то битов разные!
Например, одновременно пришел младший бит, и ушел старший - количество аварий осталось то-же, но число-то арифметически уменьшилось!

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: Сравнение чисел

Сообщение Олег »

Вероятность этого ничтожно мала, сравнения ведь происходят с интервалом в цикл контроллера, а не в пару секунд.
Отслеживать фронт каждого бита из полсотни....как то совсем нефеншуйно.
Последний раз редактировалось Олег 16 апр 2020, 10:16, всего редактировалось 1 раз.

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Сравнение чисел

Сообщение and909 »

Это зависит от периода опроса периферии. В некоторых случаях совсем не нулевая.
В данном случае наверно можно пренебречь, но и забывать не стоит.

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Сравнение чисел

Сообщение bayk »

хорошо, а пому бы не сделать на ST или С++ цикл

Код: Выделить всё

for I=0 to 100 next
E0=i
if m100@E0<>0 then M500=1
ну короче я в синтаксис не вникал. но смысл - имеем цикл перебора состояний всех требуемых битов через индексный регистр, и в случае обнаружения взведенного бита активировать один нужный маркер, ну или вообще через еще один индексный можно проверять изменение любого из битов относительно предыдущего цикла.

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Сравнение чисел

Сообщение and909 »

Отслеживать фронт каждого бита из полсотни....как то совсем нефеншуйно.
А почему нет? Большая портянка? Да черт с ней, если надо, ПЛК эти сотни строк переварит - не поморщится.

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: Сравнение чисел

Сообщение Олег »

Плк может и не сильно поморщится, а вот ручки устанут от монотонной работы.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Сравнение чисел

Сообщение tvent »

Олег писал(а):
16 апр 2020, 10:00
LD& как поможет отследить увеличение количества взведённых битов? вроде никак.
LD& D10 16#8000 просто "ловит" отрицательные числа.
Знаковый бит можно убрать, и сравнивать регистры, как положительные числа.
Как-то мне попадалась инструкция, которая считала количество 1 в регистре.
Если попадется снова - отпишусь

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Сравнение чисел

Сообщение tvent »

Олег писал(а):
16 апр 2020, 10:11
Отслеживать фронт каждого бита из полсотни
Это всего то 3 регистра
MOV D10 K4M0
MOV D11 K4M16
MOV D12 K4M32
В результате имеем 48 контактов для анализа параллельно и/или последовательно))

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Сравнение чисел

Сообщение bayk »

Олег писал(а):
16 апр 2020, 17:26
Плк может и не сильно поморщится, а вот ручки устанут от монотонной работы.
ну а чем вам мой вариант не нравится. для того а as и сделали ST и СИ, что контроллер уже может ооочень много, а ручками в ЛД можно и озвереть это описывать.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Сравнение чисел

Сообщение tvent »

tvent писал(а):
16 апр 2020, 17:33
Если попадется снова - отпишусь
Попалось на глаза.)
Команда BON проверяет активный бит в регистре. Номер бита может быть задан константой, регистром, индексом, счетчиком...
А подсчет активных битов в регистре делает SUM.

Ответить