|
Программирование в CoDeSys. Вопросы |
|
У меня четыре контроллера WAGO 750-841 на всех время быстро убегало, пока не настроил NTP клиента контроллера на локальный NTP сервер. Пока внутреннее время не использовал проблема вообще не беспокоила, а как пришлось его взять, сразу выяснилось, что внутренние часы контроллера почему то быстро убегают 2-3 сеунды в сутки.
Хотя справедливости ради надо сказать, что в целом меня эта железяка очень порадовала
|
|
![]() |
|
|
Рисовать программу квадратиками - в кайф ! Я сам постоянно пишу (т-е рисую) в CFC (редко - FBD). Но они таят в себе коварство, и платой за удовольствие оказываются скрытые ошибки. Секрет прост - всё дело в последовательности вычислений, которую не видно при произвольном расположении квадратиков-блоков, и часто к моменту выполнения функции некоторые переменные оказываются просто-напросто ещё не готовы ! Строки - особенно : строка-переменная (не константа) обретает адрес в момент присвоения значения. Если всё то же самое написать текстом (ST) , то всё работает как часики, без всяких загадок ! Просто, будьте внимательны, следите за порядком вычислений, старайтесь кубики представить в виде текста. С уважением, SAN |
|
![]() |
|
|
Особенности оператора FOR.
Имеем следующий код: PROGRAM PLC_PRG VAR I: INT; MAXI: INT := 1; LASTI: INT; END_VAR FOR I := 0 TO MAXI DO ; END_FOR; LASTI := I; По идее, тело цикла должно здесь выполниться два раза: со значениями счетчика I = 0 и I = 1. Так и происходит, однако после выполнения программы мы видим, что LASTI = 2. То есть, значение счетчика увеличивается тоже дважды. Об этом, кстати, написано в документации. Но не каждому придет в голову туда лезть, особенно в случае, где все кажется очевидным. Важное следствие из этой особенности. Если в данном примере мы примем MAXI равным 32767, то получим бесконечный цикл из-за переполнения счетчика цикла! То есть, чтобы, к примеру, присвоить значение 65536 элементам массива, нам понадобится счетчик типа UDINT, а не UINT. |
|
|
Инженер-системотехник
+7 (916) 477 3925 |
|
![]() |
|
В документации это тоже есть. 1)Цикл FOR не редко используется для поиска с доп. условием выхода из него по EXIT. Ниже цикла нужно определить отработал ли он все итерации или был преждевременный выход. Типовая ситуация. Сейчас это элементарно. Если не увеличивать счетчик в последний раз, то сделать это будет нельзя. 2) Никто не запрещает мне менять счетчик цикла внутри него. Например, перескочить несколько итераций. Отсюда правильный выход из цикла должен быть если больше, а не если равно. Отсюда нарываемся на описанную особенность. 3) Иногда бывает нужно сделать бесконечный цикл. Выход может быть по внутренним условиям, а не по числу итераций. В Си для этого есть for(;;) в CoDeSys вот такая полезная особенность :) |
|
|
Igor Petrov
|
|
![]() |
|
|
Добрый день, сегодня столкнулся впервые с КодеСисом, представления имею в программировании в целом, но вопрос в следующем, поставил мне знакомый задачку написать код к программе на CoDeSys, задача следующая:
Есть цифровые электросчетчики, которые установлены в домах, все эти счетчики запитаны, или соединены с одним блоком, и от этого блока необходимо считывать информацию о каком либо счетчике. Сам я только начинаю читать информацию, мне бы хотя бы примерно расписать, может ли этот язык это? За всю информацию огромное спасибо заранее. |
|
![]() |
|
1. Что за неопознанный "блок"? 2. А Вы (или ваш знакомый) уверены, что для работы со счетчиками - видимо система учета или мониторинга параметров эл. тока - нужно использовать Кодесис и писать для него программу? Ведь для таких задач есть много других готовых решений. |
|
|
Александр Бурмистров,
www.entels.ru |
|
![]() |
|
|
bariga001 вы поиском в интернете не пробовали пользоваться.инфы там вагон.
|
|
|
Oldman
|
|
![]() |
|
Очень странная постановка вопроса. Причем здесь CoDeSys? Если Вы можете написать программу, которая обслуживает эти счетчики, и оборудование, на котором работает эта программа, позволяет это сделать, и среда, в которой пишется Ваша программа для Вашего оборудования, это CoDeSys, то ответ да... Это примерно то же, что спросить, можно ли с помощью данного ключа ехать на автомобиле по трассе E95 со скоростью 200 км/ч Если это ключ зажигания от автомобиля, и этот автомобиль может двигаться с такой скоростью, и Вы умеете его водить, и знаете, как выехать на эту трассу, и поблизости не окажется инспектора ГАИ... Ну Вы поняли
Судя по такой постановке вопроса, Вы с Вашим знакомым сами не знаете, за что взялись. Обратитесь к специалисту, который подскажет Вам, как можно решить эту задачу, или подберет готовое решение. |
|
|
Инженер-системотехник
+7 (916) 477 3925 |
|
![]() |
|
Ответить
|
Страница <12 |
| Переход на форум | Права доступа на форуме ![]() Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |