На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Программирование ПЛК прошу совета


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2387
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 50 раз
Контактная информация:

Программирование ПЛК прошу совета

Сообщение Михайло » 10 янв 2017, 10:54

Romcheg писал(а):Источник цитаты Аааа, видимо Вы не в курсе, что Сименс уже дааавно не делает свой Step7 сам? Они его у 3S заказывают (это те, которые CoDeSys делают).

Вряд ли. У Сименса работает 7 тысяч software engineers в штате Техас (США). И эргономика интерфейса, степень взаимодействия со сторонними продуктами разительно отличается. То, что Вы говорите, это нереально для 3S. Кто же Сименсу тогда разрабатывает софт для настройки электроприводов? А новый WinCC Professional???!!! Это же личный конек Сименса, с этим 3S не справится! А ведь продукты Step7 и упомянутые StartDrive, WinCC Professional однотипны и взаимосвязаны.
Сименс отдавал на аутсорс разработку Step7 Microwin, но это мелкий софт. Наверное на этом раздута Ваша фантазия. Либо что-то из разряда криминальных отношений с VIPA.

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2682
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Откуда: Мурманск
Благодарил (а): 10 раз
Поблагодарили: 31 раз

Программирование ПЛК прошу совета

Сообщение Никита » 10 янв 2017, 11:23

Ryzhij писал(а):
Никита писал(а):Источник цитаты А если не сильно вникать в подробности, то на SFC его явно не разглядеть, там сама суть языка - даже не переходы, а зацикливание вызываемых подпрограмм с выходом по условию. А то и однократный CALL и дальше NOP с условным прыжком.

Коллега, ИМХО Вы несколько неудачно использовали слово "зацикливание".
Ничего подобного там не происходит.
Там, после выполнения условий перехода автомата из одного состояния в другое, происходит смена исполняемых задач ("вызываемых подпрограмм" в Вашей терминологии). Но без всякого "зацикливания". Просто неисполняемые в настоящее время участки кода обходятся.

Вячеслав, у меня мысли уже немного в других категориях витают. Я со стороны процессора смотрю. Да, ненужные участки могут обходиться (опять же, в конце концов, инструкциями условного перехода). Но системные задачи продолжают исполняться, а проверка условия перехода на следующий шаг продолжает выполняться. Нарисуйте по-русски эту схему, хотя бы на школьном уровне, пренебрегая прерываниями и наличием других задач - если условие, то - следующий шаг, иначе - [необязательный код] и возврат к проверке условия.
Вопрос то на в терминологии, а в том, что для того чтобы не повесить контроллер надо анализировать весь комплекс от алгоритмов до машинных инструкций. Впрочем, ситуация с нашей ПС-5 показывает что при желании и "таланте" можно зациклить и "дубовую железную" схему АПВ :o
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

Аватара пользователя

TEB
администратор
администратор
Сообщения: 8652
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Благодарил (а): 72 раза
Поблагодарили: 100 раз
Контактная информация:

Программирование ПЛК прошу совета

Сообщение TEB » 10 янв 2017, 11:31

Никита писал(а):Источник цитаты Написано то абсолютно, не спорю. Я к тому, что реализуемо до определенного уровня.
Но это написано для программиста. Процессор же вообще не подозревает о существовании цикла, для него есть только команда условного перехода

Когда Вы покупаете ПЛК, то в нём есть системное ПО, которое Вас как программиста не колышит. Системное ПО обеспечивает циклическое выполнение программы ПЛК и вочдоги (и много чего ещё). На то он и ПЛК, а не просто компьютер.

Никита писал(а):Источник цитаты Так что тут для полной гарантии надо и бумажные алгоритмы, и исходники смотреть, и еще в голове держать как это примерно в процессоре выполняться будет. Ибо сдуру и при однократном вызове подпрограммы можно ухитриться стек переполнить.

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

Ryzhij писал(а):Источник цитаты Тут надо быть элементарно последовательными.
Желаете соблюдать новые стандарты в программировании - соблюдайте их во всём.

:good:
Хоть и в другом контексте, а всё равно актуально.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.

Аватара пользователя

and909
частый гость
частый гость
Сообщения: 469
Зарегистрирован: 27 июн 2013, 11:20
Имя: Андрей Шавшуков
Благодарил (а): 4 раза
Поблагодарили: 7 раз

Программирование ПЛК прошу совета

Сообщение and909 » 10 янв 2017, 11:35

Ryzhij писал(а):С написания модуля обработки ошибок следует начинать, а не заканчивать любой мало-мальски серьёзный проект ("проект" - в программерском смысле)

В большинстве случаев обработка ошибок отнимает больше ресурсов, чем непосредственно сам техпроцесс. :affliction:
Нужно учитывать как поломки оборудования, так и действия персонала во всех возможных вариациях. :crazy0to:
Я ленивый: делаю быстро, чтобы отстали и качественно, чтобы не переделывать.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2935
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 67 раз
Поблагодарили: 118 раз

Программирование ПЛК прошу совета

Сообщение Ryzhij » 10 янв 2017, 12:06

and909 писал(а):Источник цитаты
В большинстве случаев обработка ошибок отнимает больше ресурсов, чем непосредственно сам техпроцесс. :affliction:

Жизнь вообще тяжела, но, к счастью, коротка...
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Вернуться в «Вопросы от студентов»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость