А не надо велосипед изобретать. Проще язык C использовать с готовым компилятором и библиотеками.
Вид для печати
По мне так вместо ST была бы возможность писать "по человечески " X=sin(io1*io2/3.3+ io3) в макросе для математических выражений .Сомневаюсь , что будет возможность использовать циклы ,ветвления ,переходы итд. Тоесть текстовый язык нужен не для описания алгоритма (последовательности действий) ,а исключительно для мат.операций
Больше чем уверен , не все что ST , кодесис . Это будет скорее обрубышь ...
Одно напрягает - это расстановка приоритетов в развитии ОЛ...
Через JTAG?
Вот просто вопрос. Программы для ТРМ, КТР, СУНА,... на платформе ПР200 написаны на С или ОЛ? Понятно, что внутренняя информация, но может ответите?
Просто интересно, как Вы представляете код ловли заднего фронта, это должен быть видимо какой то огроменный код, который инсатовцы ни как не могли победить что ли?
И точно ли дело в коде на ST, а вдруг он на чем то другом писался? Или ошибка вообще другого плана не связанная с кодингом пользователя
Примите за правило не пользоваться примитивными ФБ. Всегда можно записать
т.е. в Вашем коде вместо ФБ нужно добавить одну лишь булеву переменную и всеКод:IF NOT xFLAG AND xOLDFLAG THEN
...
END_IF;
xOLDFLAG := xFLAG;
ПР102 как Slave получает по Модбас команды и выполняет их, но в начале работы (при запуске) и иногда при работе по определённым условиям надо бы обнулять эту сетевую переменную, на случай если связи уже нет а команда "висит".
Она помниться даже при отключении- включении ПР
Не совсем понятна проблема, если Вам нужно иметь значение по умолчанию для сетевой переменной, можно так сделать:
Вложение 54971
Просто обнулить(записать значение) по команде или при включении - вообще не вижу проблемы!
Об этом способе я уже думал, но не нравиться он мне- в каждом цикле переписывать сетевую переменную по которой же получаешь критическую информацию (команду на включение оборудования)
А если мне надо выполнить какое-нибудь действие только при определённом условии что нет функционала?
Недостаток этих макросов в том, что выходная переменная всегда "соединена" с одним из входов, то есть не обладает возможностями "самостоятельной жизни", короче, я обычно делаю так:
Вложение 54990
При изменение входных переменных происходит разовая запись в выходную переменную, а дальше выходная переменная может "жить" собственной жизнью, например её можно изменить с экрана(или как ещё).
вариант подобный вашему с помощью SEL и FTRIG я и использую (пока в тестировании) но он мне не по душе, извращение какое-то переписывать сетевую переменную в каждом цикле.
Но почему нет нормального оператора подобного if()then enf_if мне не понятно. Если бы были операторы if и case то и ST для ПР не очень мне нужен бы был.
Так и пишите что любой грамотный пользователь ардуино сможет .....водить и в ОЛ. А потом овен будет разбирать этот .....код искать ошибку и писать автору почему этот шедевр гения программирования не работает. Вот чего я боюсь. И запомните так и будет.
Уважаемые коллеги уже 18 страниц спорят (местами очень горячо) о том , чего нет и неизвестно когда будет. Вспомните тему (обратите внимание на дату) https://owen.ru/forum/showthread.php...F2%EE%E2%EE%EC
Как пафосно начиналась
художник 4 года пишет портрет.:)Цитата:
Добрый день, коллеги!
Мы начинаем разработку программируемого реле в щитовом исполнении.
На данном этапе составляем портрет изделия.
Весьма интересный вопрос. А нет ли в ST для ОЛ (то есть ПР200) сложных типов данных? Массивы, как я выяснил уже, работают. А вот что то наподобие паскалевских записей. Наткнулся что в кодесис можно объявить тип TYPE - END_TYPE, а в нём структуру STRUCT - END_STRUCT.
Напомнили Вы, коллеги, давно забытую тему https://owen.ru/forum/showthread.php?t=17834
Из которой был сделан единственный вывод:
Попытка приблизить программирование к конфигурированию (замена языка C++ на FBD, LD и т.д.) приводит к следующему:
По мере роста сложности проектов функциональности этих языков не достаточно, что приводит к созданию новых диалектов ST, которые в свою очередь не дотягивают до любого полноценного ЯП. В результате с одной стороны мы издеваемся над КИПовцами, заставляя их разбираться в НЕДОЯЗЫКЕ, а с другой над программистом, заставляя создавать различные костыли, чтобы добавить недостающей функциональности. Или долго ожидать очередного релиза ОЛ, чтобы потом бороться с новыми багами и ждать следующего релиза. Если пройтись по форуму и почитать вопросы новичков, то станет понятно, что информатику сейчас никто не учит - отсюда нет возможности понимать и инструкции по эксплуатации. И, соответственно, чтобы вести полноценную разработку все равно требуется специалист со семью пядями во лбу, который уже опытен во всем и умеет записать любой алгоритм в любом виде. Здесь, например, все ругают Arduino. Но популярность его в мире все больше и больше растет. Почему?
Может правильнее будет упрощать жизнь профессионалам, а не усложнять её новичкам?!:confused:
Добрый день!
Вот и свершилось - ST в реле... А с чего начать? Паскаль учить или как? У нас 25 лет назад Бейсик и Фортран были...
По крайней мере триггеры в нормальных учебниках хоть 50 летней давности описаны - всё понятно, бери и учи. Или уважаемые коллеги самоучки и не знают чего просят или КАК?
Как простому человеку создать формулу, и не городить огород?
Добрый день.
Если есть хоть небольшой опыт в каком-то другом языке программирования, то вот тут довольно неплохо написано. И не размашисто - всего 8 страниц:
http://codesys.ru/docs/st_c.pdf
Не все это прям мягко сказано, ради того что там сейчас поддержано даже учить смысла нет :-)