This is topic FBD блок SIGN in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/33/t/000108.html

Posted by Avgorr (Участник № / Member № 2607) on :
 
FBD блок SIGN.
В справке сказано:
Если INP = 0, то SN+ = SN- = 0, а на самом деле при
INP = 0 имеем SN+ = 1, а SN- = 0.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Спасибо.
Поправим в документации.
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
Может лучше поправить работу блока SIGN?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Нет. Это ошибка документирования.
"Ноль" считается положительным числом.
 
Posted by ValL (Участник № / Member № 4759) on :
 
Может и правильно. И ошибку поправить быстрее.
А в ТМ5 "ноль" не считался положительным. И работал блок как в описании...
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
2AdAstra Technical Support:
Согласен с пользователем ValL - со стандартом МЭК на FBD это как согласуется? Вообще-то ноль не является положительным числом, такое математика допускает только для частных случаев (и только по взаимному решению). Даже в языках программирования аналогичная функция имеет три состояния: <0, >0 и =0.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В стандарте МЭК на FBD блок SIGN отсутствует.
Хотя в чистой математике знак 0 не определен,
в формах представления чисел в программировании любое число имеет знак (это старший бит в представлении числа). 0 относится к положительным числам.
Мы считаем, что такая широко распространненая интерпретация никак не нарушает логики вычислений и алгоритмизации анализа.
Изменения в работе этого блока не предополагаются.
 
Posted by Abram Shnider (Участник № / Member № 4534) on :
 
AdAstra Technical Support,
Позвольте с Вами не согласиться. Конечно с точки зрения "форматов представления чисел любое число имеет знак", однако 0 всегда был исключительным случаем, что иногда удобно использовать.

Согласен с Romcheg'ом:

quote:
Отправитель / Originally posted by Romсheg:
2AdAstra Technical Support:
в языках программирования аналогичная функция имеет три состояния: <0, >0 и =0.

Считаю, что данный FBD блок нуждается в исправлении.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно привести конкретный пример задачи, в которой требуется только такая функция блока, и никак иначе?
 
Posted by Abram Shnider (Участник № / Member № 4534) on :
 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Можно привести конкретный пример задачи, в которой требуется только такая функция блока, и никак иначе?

Может быть и не совсем в тему, но сходу всплывает задача аналогичная "Поиску решения" в MS Excel. Это последовательное приближение.

Ну я думаю, что смысл понятен.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
При таком подходе возникает встречный вопрос - а можно привести пример задачи, для которой Адастра вообще делала этот блок? Можно было с успехом обойтись и тремя сравнениями. А зачем ПИД-регулятор делали? Можно из штатных базовых составить формулу... И так можно продолжать еще долго.

Если исправления блока идут в разрез с мнением разработки или маркетинга - приведите, пожалуйста, их доводы по поводу того, почему они не хотят вносить исправления?

По своим задачам приведу один из примеров, где такой блок бывает полезен: иногда внутри логики алгоритма приходится работать с кодом состояния задвижки, которая имеет три состояния: открывается, закрывается, в покое. Открытие и закрытие - это положительная и отрицательная команда, а вот покой - это ноль. [Пдмигивание / Wink] Конечно, обойтись тремя блоками можно, но удобнее одним...
 
Posted by A40 (Участник № / Member № 3999) on :
 
Вот сейчас достал древний калькулятор МК-61 [Улыбка / Smile]
Оператор ЗН работает как и положено по метематике -1,0,+1
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
quote:
Отправитель / Originally posted by Romсheg:
По своим задачам приведу один из примеров, где такой блок бывает полезен: иногда внутри логики алгоритма приходится работать с кодом состояния задвижки, которая имеет три состояния: открывается, закрывается, в покое. Открытие и закрытие - это положительная и отрицательная команда, а вот покой - это ноль. [Пдмигивание / Wink] Конечно, обойтись тремя блоками можно, но удобнее одним...

Поэтому и возник этот вопрос, но этот блок оказался бесполезен.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если даже состояние "задвижки" кодируется числами со сменой знака, необходимое преобразование легко осуществляется блоком "Управление по интервалу" (<>F).
 
Posted by ValL (Участник № / Member № 4759) on :
 
Мне кажется, этот блок с 2 выходами и создавался с целью определения возможного третьего состояния. И это логично. А иначе почему не предлагаются другие блоки сравнения с двумя выходами? Ведь по сути тогда в варианте "AdAstra" выходы блока SIGN SN+ и SN- являются обычными прямым и инверсным. Значит создали второй вход в качестве бонуса. Но тогда не прослеживается однотипности в подходе.
Программист похоже ошибся, и стоило признать по-моему мелкую ошибку, а не продолжать тему.
В конце концов не ошибается тот, кто ничего не делает.
А иначе действительно, зачем блок SIGN? Его можно заменить блоком "Больше или равно (>=)", когда IN2=0. Я бы голосовал за исправление ошибки в блоке...
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
1) Программист всегда прав
2) Если нашли ошибку в ТМ6 - правим документацию и смотрим пункт №1

[Усмешка / Big Grin]
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
И я голосую за исправление ошибки в блоке.
 
Posted by Abram Shnider (Участник № / Member № 4534) on :
 
Насколько я понимаю концепцию Trace Mode (поправьте, если ошибаюсь), FBD-блоки в конце-концов представляют собой фрагменты кода ST.
А если это так, тогда самым простым решением указанных выше примеров применения блока является использование именно правильно работающего блока SIGN:
quote:
Отправитель / Originally posted by A40:
Вот сейчас достал древний калькулятор МК-61 [Улыбка / Smile]
Оператор ЗН работает как и положено по метематике -1,0,+1

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

Я за внесение исправлений в SIGN, хотя конечно, можно обойтись и тем, что есть...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Мы будем иметь в виду мнения участников дискуссии.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2