Что-то у меня с головой... Тыщи лет использовал язык SFC (довольно примитивно) и в нем всегда было настроено "Использовать МЭК-шаги". Теперь вдруг о-па! В новой программе не могу работать с МЭК-шагами (например, пользоваться внутренней переменной "время работы шага").
Породил новый проект со старого по шаблону. Тот же набор бибилиотек. Те же настройки в "опции" проекта. Конечно же, стоит галочка "Использовать МЭК-шаги". Галочка стоит, а рядом (если открыть свойства шага) пункт меню "Связать действие" - не активен.
С чего бы это?
В КДС программа на SFC может одновременно содержать как упрощенные так и МЭК шаги
Включение/выключение опции "Использовать МЭК-шаги" не изменяет тип ранее созданных шагов, а только переключает редактор в режим создания новых шагов соответствующего типа. Ранее созданные шаги не изменяют своего типа.
Т.е. при выключенном "Использовать МЭК-шаги" можно добавлять простые шаги, если затем включить "Использовать МЭК-шаги", то последующие шаги будут создаваться как МЭК шаги. Затем можно выключить "Использовать МЭК-шаги" и опять добавлять простые шаги.
Таким образом если вся программа должна быть написана на МЭК-SFC,то опция "Использовать МЭК-шаги" должна быть включена еще до добавления самого первого шага.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Йолы-палы...
Я-то это прекрасно знал.
А вот это не учел!
Да нет, я всего-то навсего убил пару шагов и создал новые. И ведь сразу видно: когда новые МЭК-шаги создаешь, редактор услужливо тулит рядом привязанное действие! Блин! Давно не создавал новые программы, вот и потерял нюх. Хотя... Какой там нюх... Скорее, как в присказке "Не знал, не знал, да и забыл"
Спасибо, дорогой petera! Всегда был восхищен твоими адекватными и очень точными советами. И понятными для таких... э... специалистов, как я.
Поделюсь на радостях: это я ноутбуком гвозди забиваю. Подробнее - на ветке программируемых реле. Тоже хотел в вопросах новичков разместить, но потом хорошее название для темы придумал, так что сопцтвенную тему и завел.
Совершенно новый вопрос.
Как-то отложилось у меня в дурной башке, что в КДС можно перейти с одного поддерживаемого языка на другой автоматически. Кто-нить делал трансляцию проекта? Потому что мои поиски привели меня к печально известному разбитому корыту. Та трансляция, что в меню Project -> Translate into other languages, это всего лишь перевод комментов.
Та что, отак вот и нет автоматических средств трансляции проекта (или хоть отдельного POU) со, скажем, SFC на FBD?
Спасибо! Это оно.
Жаль только, что SFC-модули как раз и не позволяют такое сотворить. Эх...
Зато интересно было посмотреть, во что превращаются ST-программы! особенно прикол оператор присваивания (когда справа нет вычислений, ну, например, bRun:=FALSE).
Что ж, если уж так нравиттся SFC, то вначале на нем, потом, вручную - на знакомом ST, а уж с него автоматом на FBD. Наверное, это правой рукой левое ухо через затылок
Ответ понятен, спасибо!
Здравствуйте. Ребята, подскажите пожалуйста, естть ли в языке ST возможность округления числа (скажем REAL) до 3-го знака после зяпятой. Если есть, напишите пожалуйста как!
1.Использовать стандартную функцию TRUNC(). Правда она не округляет, а просто отбрасывает оставшиеся знаки
2. Если нужно именно округление, то функция ROUN() из библиотеки OSCAT
Вот ее код
Код:FUNCTION ROUND : REAL VAR_INPUT in : REAL; N : INT; END_VAR VAR DECADES : ARRAY[0..8] OF REAL := 1.0,10.0,100.0,1000.0,10000.0,10000.0,100000.0,1000000.0,10000000.0; X: REAL; END_VAR X :=DECADES[LIMIT(0,N,8)]; ROUND := DINT_TO_REAL(REAL_TO_DINT(in * X)) / X;
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg