Программирование в CoDeSys. Вопросы |
Ответить | Страница <12 |
Автор | |
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
Опубликовано: 09 Апрель 2009 17:05 |
У меня четыре контроллера WAGO 750-841 на всех время быстро убегало, пока не настроил NTP клиента контроллера на локальный NTP сервер. Пока внутреннее время не использовал проблема вообще не беспокоила, а как пришлось его взять, сразу выяснилось, что внутренние часы контроллера почему то быстро убегают 2-3 сеунды в сутки. Хотя справедливости ради надо сказать, что в целом меня эта железяка очень порадовала
|
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Рисовать программу квадратиками - в кайф ! Я сам постоянно пишу (т-е рисую) в CFC (редко - FBD). Но они таят в себе коварство, и платой за удовольствие оказываются скрытые ошибки. Секрет прост - всё дело в последовательности вычислений, которую не видно при произвольном расположении квадратиков-блоков, и часто к моменту выполнения функции некоторые переменные оказываются просто-напросто ещё не готовы ! Строки - особенно : строка-переменная (не константа) обретает адрес в момент присвоения значения. Если всё то же самое написать текстом (ST) , то всё работает как часики, без всяких загадок ! Просто, будьте внимательны, следите за порядком вычислений, старайтесь кубики представить в виде текста. С уважением, SAN |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
Особенности оператора 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 |
|
Действительный член Присоединился: 29 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 293 |
|
В документации это тоже есть. 1)Цикл FOR не редко используется для поиска с доп. условием выхода из него по EXIT. Ниже цикла нужно определить отработал ли он все итерации или был преждевременный выход. Типовая ситуация. Сейчас это элементарно. Если не увеличивать счетчик в последний раз, то сделать это будет нельзя. 2) Никто не запрещает мне менять счетчик цикла внутри него. Например, перескочить несколько итераций. Отсюда правильный выход из цикла должен быть если больше, а не если равно. Отсюда нарываемся на описанную особенность. 3) Иногда бывает нужно сделать бесконечный цикл. Выход может быть по внутренним условиям, а не по числу итераций. В Си для этого есть for(;;) в CoDeSys вот такая полезная особенность :) |
|
Igor Petrov
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Май 2009 Категория: Russian Federation Online Status: Offline Публикации: 1 |
|
Добрый день, сегодня столкнулся впервые с КодеСисом, представления имею в программировании в целом, но вопрос в следующем, поставил мне знакомый задачку написать код к программе на CoDeSys, задача следующая:
Есть цифровые электросчетчики, которые установлены в домах, все эти счетчики запитаны, или соединены с одним блоком, и от этого блока необходимо считывать информацию о каком либо счетчике. Сам я только начинаю читать информацию, мне бы хотя бы примерно расписать, может ли этот язык это? За всю информацию огромное спасибо заранее. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 24 Февраль 2004 Категория: Russian Federation Online Status: Offline Публикации: 185 |
|
1. Что за неопознанный "блок"? 2. А Вы (или ваш знакомый) уверены, что для работы со счетчиками - видимо система учета или мониторинга параметров эл. тока - нужно использовать Кодесис и писать для него программу? Ведь для таких задач есть много других готовых решений. |
|
Александр Бурмистров,
www.entels.ru |
|
Действительный член Присоединился: 13 Август 2007 Категория: Russian Federation Online Status: Offline Публикации: 127 |
|
bariga001 вы поиском в интернете не пробовали пользоваться.инфы там вагон.
|
|
Oldman
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
Очень странная постановка вопроса. Причем здесь CoDeSys? Если Вы можете написать программу, которая обслуживает эти счетчики, и оборудование, на котором работает эта программа, позволяет это сделать, и среда, в которой пишется Ваша программа для Вашего оборудования, это CoDeSys, то ответ да... Это примерно то же, что спросить, можно ли с помощью данного ключа ехать на автомобиле по трассе E95 со скоростью 200 км/ч Если это ключ зажигания от автомобиля, и этот автомобиль может двигаться с такой скоростью, и Вы умеете его водить, и знаете, как выехать на эту трассу, и поблизости не окажется инспектора ГАИ... Ну Вы поняли Судя по такой постановке вопроса, Вы с Вашим знакомым сами не знаете, за что взялись. Обратитесь к специалисту, который подскажет Вам, как можно решить эту задачу, или подберет готовое решение. |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Ответить | Страница <12 |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |