Страница 7 из 8 ПерваяПервая ... 5678 ПоследняяПоследняя
Показано с 61 по 70 из 74

Тема: Графические языки и удобство программирования

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

    По умолчанию

    ОК, я протупил немного, закольцовывая ничего хорошего не получишь. Там в CFC есть оператор перехода, на нём конечно можно.
    А ничего что условие перехода - логическое ?

  2. #62

    По умолчанию

    Цитата Сообщение от Amko Посмотреть сообщение
    Так то 15 выходов можно и ручками прописать)
    Выходы здесь указаны просто для примера, на самом деле ситуация может быть самая разная.
    Я про то, что предлагают отказываться от FOR и переходить на что-то, вроде (пользуясь циклом самого ПЛК):
    " if uslovie<> ustavka then a:=a+1; end_if; ".

    Вот и представьте:
    к примеру, есть 15 дискретных датчиков, они образуют массив.
    Нужно в программе перебрать состояния всех 15-ти датчиков ( теперь уже элементов массива) и выполнить затем какие-либо операции в зависимости от их состояния.
    Теперь задумайтесь:
    в каком случае быстрее выполнится сама программа:
    - если я в каждом цикле буду перебирать по одному элементу массива (на это уйдёт 15 циклов ПЛК);
    - или же если я использую FOR и с его помощью я ЗА ОДИН ЦИКЛ ПЛК переберу ВСЕ элементы массива?
    Это только один простенький примерчик насчет FOR.

    А если элементов не 15, а 115?
    Последний раз редактировалось kolyan; 12.02.2014 в 19:24.

  3. #63
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    Если датчиков 15 штук и требуется с ними сделать одинаковые действия - напишу ФБ, вызову ФБ 15 раз подряд. Не сломаюсь, и в дальнейшем проще разбираться.
    Если датчиков 150 штук, в екселе макросом сделаю себе ST код на вызов всех 150 ФБшек, кину в отдельный блок и забуду ваще про их существование. Это если надо все за раз обрабатывать и прям в каждом цикле. Если можно обойтись, буду вызывать один ФБ в каждом цикле, на входе менять адрес датчика, за 150 вызовов ПЛК пройдусь по всем.

  4. #64

    По умолчанию

    Цитата Сообщение от Amko Посмотреть сообщение
    Если датчиков 15 штук и требуется с ними сделать одинаковые действия - напишу ФБ, вызову ФБ 15 раз подряд. Не сломаюсь, и в дальнейшем проще разбираться.
    Если датчиков 150 штук, в екселе макросом сделаю себе ST код на вызов всех 150 ФБшек, кину в отдельный блок и забуду ваще про их существование. Это если надо все за раз обрабатывать и прям в каждом цикле. Если можно обойтись, буду вызывать один ФБ в каждом цикле, на входе менять адрес датчика, за 150 вызовов ПЛК пройдусь по всем.
    И смысл всех этих действ?
    Если все просто:

    FOR I:=1 TO 115 DO

    И всё.
    Что такого ужасного в FOR?
    И зачем, если он такой плохой и ужасный - его ввели в ST?
    Последний раз редактировалось kolyan; 12.02.2014 в 20:11.

  5. #65
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    Видимо вопрос по поводу целесообразности введения FOR был риторическим? Я понятия не имею, зачем его ввели
    Может у меня какая то forофобия, не знаю. Просто не вижу смысла останавливать работу ПЛК на некоторое время, если это не требуется процессом. В своей практике не сталкивался с тем, чтобы мне требовалось обрабатывать несколько сотен датчиков именно в каждом цикле, потому не боюсь размазывать их обработку на несколько циклов. Все таки про остальной код тоже не стоит забывать, надо и ему дать выполняться

  6. #66

    По умолчанию

    Не пойму, что за формулировки "останавливать работу ПЛК"????? -> Сколько тактов тратит процессор на организацию цикла?
    "остальное код, надо и ему дать выполняться" мне казалось все выполняется по шагам(определенный оператор занимает определенное количество тактов процессора), а сколько там в секунду тактов у проца, не подскажете...наверно я ошибаюсь

    Для каждой конкретной задачи берется соотв оборудование и код! Может мне показалось, но по вашему, дисковая операционная система это гуд а винда масдай.
    зы !Редко! комфорта удается добиться принципом все гениальное - просто. спс.

  7. #67
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    Для каждой конкретной задачи берется соотв оборудование и код!
    Да что ж спорит!
    Может мне показалось, но по вашему, дисковая операционная система это гуд а винда масдай.
    Показалось)

    Я хотел высказать, что запихивая много логики в цикл FOR мы увеличиваем цикл, тем самым снижаем быстродействие других процессов.
    И поэтому вопрос - а оно надо? Стоит оно того, чтобы загружать ПЛК именно в каждом цикле?

  8. #68

    По умолчанию

    Главное, не нарваться на пса времени!

  9. #69

    По умолчанию

    незнаю, что Вы понимаете под этим, собственно цикл for и подразумевает некоторое количество использований goto, а Ваш перебор цикла у меня получился минут за пять, восновном время потрачено на расположение элементов
    Я говорил только про то, что GOTO в обычном понимании это просто переход к произвольной метке в программе, и именно поэтому его рекомендуют избегать. А цикл же FOR чётко обособлен в коде между словами FOR и END_FOR, и программа воспринимается легко и понятно.

    Цикл ваш посмотрел. А теперь представьте как это будет на ST: 3 простых строки! И на написание - не 5 минут а секунд 30.

    Я хотел высказать, что запихивая много логики в цикл FOR мы увеличиваем цикл, тем самым снижаем быстродействие других процессов.
    И поэтому вопрос - а оно надо? Стоит оно того, чтобы загружать ПЛК именно в каждом цикле?
    Есть же модуль статистики, где спокойно смотрится свободное время процессора в каждом такте ПЛК. Да и не так уж и грузит его среднестатистический цикл FOR, ибо работает он шустро.
    Последний раз редактировалось Boris_K; 13.02.2014 в 09:57.

  10. #70
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Ппц.

    Википедия: Декларативное_программирование — LD, FBD, CFC
    Википедия: Императивное_программирование — IL, SFC, ST

    Когда хочется сказать глаголом, надо говорить глаголом. Когда хочется назвать существительным, надо называть существительным. Остальное — канцеляризм и косноязычие.

    У меня всё.
    Последний раз редактировалось Yegor; 13.02.2014 в 13:42.

Страница 7 из 8 ПерваяПервая ... 5678 ПоследняяПоследняя

Похожие темы

  1. Языки программирования CoDeSys
    от mogikanin в разделе ПЛК3хх
    Ответов: 21
    Последнее сообщение: 23.03.2014, 16:58
  2. примеры программирования
    от ilf в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 20.07.2010, 15:33
  3. Удобство монтажа
    от SKiT в разделе Разработки
    Ответов: 3
    Последнее сообщение: 05.03.2009, 11:24

Ваши права

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