Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 42

Тема: Контроль нескольких FBD с одним именем в CFC

  1. #21
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    amn это да, только когда на вход одного и копию другого блока подаешь две разных булевых переменных, не происходит контроля при проверке и компиляции. Фактически если взять два таймера с одним именем, на входы которых подать две разных переменных на IN, то это равнозначно работе одного таймера с блоком И на входе и временем, соответствующем последней установленной копии.

  2. #22
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    И это очень хорошо. Иначе в программе нельзя было бы вызвать один ФБ несколько раз с разными параметрами. А такое часто бывает нужно. Представьте себе ситуацию: включен таймер на определенное время. Произошло некое событие, по которому нужно только изменить время в таймере а весь остальной алгоритм оставить без изменения. Вызываем этот же таймер с новым временем и все. Очень удобно.

  3. #23
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

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

    запомните одно из правил программирования: ошибке не всёравно кто её обнаружит
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #24
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    В окне объявлений переменных в режиме CFC CDS объявляет две переменных с одним именем не ругаясь. И даже больше в любых комбинациях.

    Если как в сообщении 15 поставить 2 таймера с одним именем, то таймер запустится только в том случае, если ОБЕ переменных будет true. То ест CDS дефакто между переменными a и b как бы молча ставит логическое И. Хотя его нет, и ни на что не ругается.
    То есть не запускается таймер вовсе по одной переменной, так как вы запускается один таймер в разных местах ?
    Без шагов. С шагами понятно.
    Изображения Изображения
    Последний раз редактировалось melky; 27.10.2014 в 16:15.

  5. #25
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    так как вы запускается один таймер в разных местах ?
    Без шагов. С шагами понятно.
    Запускаем в ST. С шагами

    Что Вы сделали с компилятором? Как Вам это удается?
    Изображения Изображения
    • Тип файла: png 1.PNG (27.4 Кб, Просмотров: 13)
    Последний раз редактировалось amn; 27.10.2014 в 16:59.

  6. #26
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    был бы я не в пути,сам бы посмотрел в кдс, а как себя ведет контроль поворяюшихся переменных?

    зы только обратил внимание,спасибо белгородцам, окно компилятора то на Вашем скрине отсутствует
    Последний раз редактировалось capzap; 27.10.2014 в 16:54.

  7. #27
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    amn да откуда ж я знаю как?, сижу вбиваю, а ошибок нет.
    Сорри, да, если вводить имена в окно переменных, тогда ошибки отлавливает при компиляции, но если сделать копи-паст блока, то CDS не видит ошибок, как результат потом выискивать в программе, где забыл переименовать блок.
    Последний раз редактировалось melky; 27.10.2014 в 17:01.

  8. #28
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Бывает еще такое: переменную объявил, задаешь имя блока, а тебе предлагают объявить переменную еще раз. Тогда появляется еще одна переменная в окне объявлений. Но тут компилятор уже ругается.

  9. #29
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    сижу вбиваю, а ошибок нет.
    руками ?
    Бывает еще такое: переменную объявил, задаешь имя блока, а тебе предлагают объявить переменную еще раз.
    Небывает. Каждый раз оказывается ошибка в объявлении при ручном забивании. Например
    var
    a ; int;

    или
    var
    ' a : int;

    вбивая "a" в код только автообъявитель сделает
    var
    a ; int;
    a : int;

    Вообщем - фольклор

  10. #30
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Небывает. Каждый раз оказывается ошибка в объявлении при ручном забивании.
    Не только при ручном. При объявлении переменной b в разделе объявления переменных ввел только имя, после чего нажал Ctrl+Enter. Все остальное ввелось автоматически. Тем не менее смотрите результат. Угадайте, что будет после нажатия кнопочки OK
    Изображения Изображения
    • Тип файла: png 2.PNG (18.1 Кб, Просмотров: 14)
    Последний раз редактировалось amn; 27.10.2014 в 22:30.

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Похожие темы

  1. Элемент с таким именем существует
    от Columbariy в разделе Master SCADA 3
    Ответов: 10
    Последнее сообщение: 14.02.2013, 15:20
  2. ТРМ151 холодильник и нагреватель с одним выходом
    от Anton441 в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 10.11.2011, 15:03
  3. CFC copy
    от Антон в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 19.03.2008, 07:49

Ваши права

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