PDA

Просмотр полной версии : Прерывание акта соития ПЛК и PC



Montigo
24.10.2008, 16:03
Добрый день!
Ситуация раньше встречалась периодически, сегодня - в полный рост.
Загружаю новую программу в ПЛК-150 (через Debug-порт или Ethernet - картина одинакова). Загрузка начинается, программа сливается, потом наступает пауза на сообщении:

Downloading all...
config.dat: 123456 of 123456 bytes

секунд через 5 ПЛК пищит, мигает всеми диодами (как при ресете) и запускает старую программу (а я ее останавливал перед заливкой новой).
CodeSys при этом сообщает о ТаймАуте и отваливается.

"Сброс", выключение питания на длительное время, замена кабеля и пр. и пр. - ничего не меняют.

У HiperTerminal'а запала в душу фраза о "reset by watchdog"
Похоже, но чем это может быть вызвано?..

PC_DOS
25.10.2008, 11:29
Попробуйте при перезагрузке контроллера зажать кнопку Start и залить проект в "пустой" ПЛК. А вообще было бы неплохо увидеть проект.

Nik
27.10.2008, 08:37
Выше описанное происходит и у меня на PLC 150 I.M. Target и firmwire последней версии. Что то не стыкуется. Приходиться новый проект заливать несколько раз. Комбинируя нажатие кнопок Reset и start/stop. Проверяю работоспособность нового проекта отключив питание на пол часа. Если CoDeSys после начала сношения с PLC доволен то вновь залитый проект в последствии работает нормально.

Дмитрий Артюховский
27.10.2008, 10:06
Происходит и с ПЛК100 тоже. Примерно в 10% случаев проект не записывается правильно в флэш при загрузке Кодесисом. Причем иногда кодесис признается что не получилось, а иногда нет. Способы борьбы - после загрузки проекта нажать кнопку "Ресет" и залогиниться снова, сразу видно удачная загрузка или нет. Если заливать просто файлы с образом - ошибок еще не было ни разу. (статистика по примерно 100 контроллерам, с неоднократным обновлением) Мне кажется что это закидон самого кодесиса а не контроллера.

Kirill
27.10.2008, 10:20
У HiperTerminal'а запала в душу фраза о "reset by watchdog"
Похоже, но чем это может быть вызвано?..

Проверьте саму программу. Если срабатывает watchdog, значит цикл работы ПЛК превышеает максимально заданное время (по умолчанию - секунда). Это может произойти, если ПЛК не может закончить работу, например при бесконечном цикле.

Montigo
27.10.2008, 11:03
Если срабатывает watchdog, значит цикл работы ПЛК превышеает максимально заданное время (по умолчанию - секунда).

А как установить "максимально заданное время" более секунды? А то мне кажется, что контроллер не успеет опросить все аналоговые входы (кроме своих еще модуль расширения МВА8) да еще отреагировать на состояние среды...

PC_DOS
27.10.2008, 11:52
в PLC_Configeration прямо в основном модуле есть настройка MaxCycleLength, можно установить до 10 секунд

Николаев Андрей
27.10.2008, 16:57
А как установить "максимально заданное время" более секунды? А то мне кажется, что контроллер не успеет опросить все аналоговые входы (кроме своих еще модуль расширения МВА8) да еще отреагировать на состояние среды...

Время опроса входов, и тем более сетевых входов оказывает очень косвенное влияние на время цикла, так как делается не в самом цикле, а в прерываниях.
То есть сказать, что каждый цикл опрашиваются все входы - нельзя.
Так как цикл, например 1мс, а опрос всех только своих аналоговых входов производится параллельно за 0,5с.
Так же совершенно параллельно опрашиваются сетевые входы.
А контроллер раз в цикл берет данные из специальной области памяти, куда данные с входов помещаются...

Аркадий
18.03.2009, 15:37
а где ответы по теме?
у меня такая же ситуация на ПЛК 154.
она возникает при попытке полностью сменить программу в ПЛК. т.е. пришел утром на объект, подключаешься и .. процесс пошел. все как описано в первом посте. причем при размере программы 50 кб и 100 кб картина одинакова. надо сидеть и пытаться записать программу.. очень "красивая" ситуация..
немного помогает такая процедура - подключиться, не заливать новую, остановить контроллер из кодесиса, отключиться и при новом подключении сказать ДА )).
но не всегда помогает.
что делать то ? как то не серьезно это все.

Dmitry
18.03.2009, 19:41
Та же ситуация была, правда с старыми прошивками. По ходу если на ПЛК выполняется программа, которая помимо прочего опрашивает интерфейс RS-485 (МВА, МВУ, МДВВ...), то порт Debug переодически оказывается занят или подвисает, а может помехи. В итоге даже при удачном коннекте не всегда успевает залится новая программа. Вывод: отключать RS-485, останавливать программу.
Несколько раз получался фокус, сам не пойму как. ПЛК не коннектится видно по описанной выше причине. Перехожу в режим эмуляции. Логин. Всё, понятно, работает. Жму Project-ClearAll. Программа Плк стирается. Выключаем эмуляцию и конектимся к плк.

Аркадий
19.03.2009, 11:34
Я подключаюсь не по дебаг а по езернету. Это глюк прошивки. Прошивка используется последняя не бета.

Короче все эти танцы с бубном напрочь убивают желание использовать ПЛК и сводят на нет достоинства сего продукта.
почему то подобных багов нет ни в WAGO ни в BeckHoff, работающих под тем же Кодесис.
Господа разработчики и маркетологи ОВЕНА ! До каких пор ?
Я уж не буду говорить про странные наполовину умирания ПЛК после 3 мес. работы на объекте... И незащищенность аналоговых входов, когда подача 24В на один вход (просто замыкание контактов датчика, чатое явление) палит ВСЕ аналоговые входы.

Kirill
19.03.2009, 13:36
Я подключаюсь не по дебаг а по езернету. Это глюк прошивки. Прошивка используется последняя не бета.

Короче все эти танцы с бубном напрочь убивают желание использовать ПЛК и сводят на нет достоинства сего продукта.
почему то подобных багов нет ни в WAGO ни в BeckHoff, работающих под тем же Кодесис.
Господа разработчики и маркетологи ОВЕНА ! До каких пор ?
Я уж не буду говорить про странные наполовину умирания ПЛК после 3 мес. работы на объекте... И незащищенность аналоговых входов, когда подача 24В на один вход (просто замыкание контактов датчика, чатое явление) палит ВСЕ аналоговые входы.

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

Gans
19.03.2009, 15:23
Вот решил поумничать как с этим бороться. При подключении к ПЛК1хх не надо сразу сливать в него программу, а для начала нажмите «Отмена». Потом «Ресет(оригинал)». И теперь пытаемся сделать даунлоад. Обычно в этом месте контроллер перезагрузится и останется чистым!!! А вот теперь заново подключаемся к ПЛК1хх и сливаем свою новую программу.:)
P. S. у меня это срабатывает всегда!!! По моему проблемы в том что служба обмена по портам не останавливается и при попытки что то менять на запущенную службу все перезагружается.

Филоненко Владислав
19.03.2009, 19:55
Ошибка сильно неуловимая. Сейчас пытаемся найти условия, когда она воспроизводима.

Аркадий
20.03.2009, 07:20
ошибка стабильно возникает в следующей ситуации у меня при подключении по езернет.
проект должен быть более 50 кб, закгружаемый config.dat более 25 кб (100кб, 37 кб то же самое)
заливаете в плк. отключаетесь, кабель тоже, и может подождать некоторое время. меняете немного проект. снова подключаетесь.
кодесис спрашивает залить изменения? нажимаем да, но заливаются не изменения а полный проект - перезагрузка. при дальнейшей работе не отключая кабеля плк и делая небольшие изменения происходит нормальная заливка собственно измененных модулей небольшими объемами.
проблема по моему возникает во время / после записи config.dat.

Аркадий
20.03.2009, 09:14
еще наблюдение сегодняшнее.
ошибка возникает при загрузке после изменения конфигурации ПЛК, когда после сохранения проекта сообщает что частичное изменение будет невозможно.

Малышев Олег
20.03.2009, 09:46
Уважаемый Аркадий, к сожалению ошибка присутствует. И напрямую связана с использованием в конфигурации модулей ввода вывода по последовательным портам. При работе с запущенными в опрос интерфейсами на больших проектах (более 20 регистров модбас/ команд овен). Особенно часто возникает при отключенных слейвах и слишком малых pooling time. Лично я перед логином пользовался ресетом при пуске. Как вариант - программный останов всего опроса (командной в переменную статуса мастера) перед логином.
По моему скромному мнению использование модулей ввода -вывода в конфигурации есть неизбежное зло, которое позволяет быстро запустить систему в работу, но для больших систем надо пользоваться очень аккуратно. Играйте c Pooling Time и Status(для запуска останова ненужных устройств). Чтение документации не совсем дает представление о работе. Чисто практически - считайте время pooling time по совокупности передаваемых данных. Выключайте устройства из опроса по таймауту.

Кстати еще грабли -
В прошивке 2.07 и выше ужесточены требования к настройке - цикл ПЛК превыше всего - т.е. если программа не влезает в заявленный цикл плк - надо его увеличивать иначе работа с внешним устройствами практически не идет.


Пусть бросит в меня Симатеком s400 тот кто не встречал контроллеров без особеннностей.
Насчет умирания - на объекте ну вообще верю, но где сам видел и трогал руками объекты - все висит и пашет уже года 1.5.
Верю что руки прямые, верю что контроллеры хуже немецких, верю что помех нет - ну так пишите как выходит из строя, почему, в каких условиях - мы открыты и готовы к сотрудничеству. Уже было внесено в конструкцию и ядро ПЛК много изменений по обращениям клиентов.

Аркадий
23.03.2009, 08:01
.... При работе с запущенными в опрос интерфейсами на больших проектах (более 20 регистров модбас/ команд овен)....
регистров много , более 200.



Кстати еще грабли -
В прошивке 2.07 и выше ужесточены требования к настройке - цикл ПЛК превыше всего - т.е. если программа не влезает в заявленный цикл плк - надо его увеличивать иначе работа с внешним устройствами практически не идет.

зачем выдерживать цикл программы, если в нее не поступают входные сигналы и не выходят управляющие?
по моему мнению в классической схеме - [опрос входов - программа - установка выходов], время цикла это сумма всех трех составляющих, а не только время исполнения программы.



Пусть бросит в меня Симатеком s400 тот кто не встречал контроллеров без особеннностей.

речь ведь не о том что в мире идеально )).



Насчет умирания - на объекте ну вообще верю, но где сам видел и трогал руками объекты - все висит и пашет уже года 1.5.
Верю что руки прямые, верю что контроллеры хуже немецких, верю что помех нет - ну так пишите как выходит из строя, почему, в каких условиях - мы открыты и готовы к сотрудничеству. Уже было внесено в конструкцию и ядро ПЛК много изменений по обращениям клиентов.

в том случае он умер очень интересно. хотел все зафиксировать и вам передать,но в первую очередь был озабочен восстановлением работы.

суть - плк опрашивал входные устройства из конфигурации, но программа не работала. кодесис подключался, программа записывалась, (насколько помню), но после запуска индикатор работа погасал через несколько секунд, так же и после ресета, работа загорится и погасает..

еще особенность - при установке времени и даты через терминал кодесиса они не устанавливались. т.е. на команду плк не ругался, но время оставалось по нулям, просто 0:0:0. Также, не удалялись файлы из плк.
проблема решилась перепрошивкой плк.

Филоненко Владислав
23.03.2009, 08:24
Если ПЛК не обрабатывает входные и не управляет выходными сигналами, может его вообще исключить? Но ведь они всё-же чем-то управляет? ;)
Цикл ПЛК - время между 2 последовательными вызовами программы управления.

Дело явно не в прошивке было. Вообще, перепрошивка ничего не меняет, кроме форматирования ФС, но к работе с верхней платой никакого отношения это не имеет. ПЛК при перепрошивке разбирался?

Малышев Олег
23.03.2009, 08:26
зачем выдерживать цикл программы, если в нее не поступают входные сигналы и не выходят управляющие?
по моему мнению в классической схеме - [опрос входов - программа - установка выходов], время цикла это сумма всех трех составляющих, а не только время исполнения программы.


Условно разделим пространство ввода- вывода ПЛК на 2 - одно "свое" - обычные вводы и выводы и другое "интеллектуальное" - внешние устройства по последовательным интерфейсам.
Приоритет циклу ПЛК отдается прежде всего "своему" быстрому вводу -выводу. Некоторые пользователи управляют тех. процессами требующими управляющего цикла в 1 мс и менее на "своих" входах. Соответсвенно, НЕОБХОДИМО будет так настроить "интеллектуальный" ввод-вывод что бы цикл ПЛК выполнялся как требуется. Тоже касается времени выполнения программы в цикле.

Кстати судя по симптомам поплохело файловой системе и верхней плате.
И сразу три вопроса - с файлами работаете? Со временем работаете? Можно посмотреть что пишет PLC Browser/PLCInfo?

Аркадий
23.03.2009, 15:38
Если ПЛК не обрабатывает входные и не управляет выходными сигналами, может его вообще исключить? Но ведь они всё-же чем-то управляет? ;)
Цикл ПЛК - время между 2 последовательными вызовами программы управления.

Дело явно не в прошивке было. Вообще, перепрошивка ничего не меняет, кроме форматирования ФС, но к работе с верхней платой никакого отношения это не имеет. ПЛК при перепрошивке разбирался?

если не обрабатывает и не управляет то конечно можно исключить )) он не выполняет при этом озложенных на него функций ;)
ИМХО - цикл ПЛК - время между 2 последовательными выполнениями следующих операций (опрос входов, обработка алгоритма, установка выходов).

не знаю в чем было дело, но помогла только прошивка. контроллер разбирался.

Филоненко Владислав
23.03.2009, 16:01
Так при разборе контакт и восстановился.

Аркадий
23.03.2009, 16:19
Условно разделим пространство ввода- вывода ПЛК на 2 - одно "свое" - обычные вводы и выводы и другое "интеллектуальное" - внешние устройства по последовательным интерфейсам.
Приоритет циклу ПЛК отдается прежде всего "своему" быстрому вводу -выводу. Некоторые пользователи управляют тех. процессами требующими управляющего цикла в 1 мс и менее на "своих" входах. Соответсвенно, НЕОБХОДИМО будет так настроить "интеллектуальный" ввод-вывод что бы цикл ПЛК выполнялся как требуется. Тоже касается времени выполнения программы в цикле.

Кстати судя по симптомам поплохело файловой системе и верхней плате.
И сразу три вопроса - с файлами работаете? Со временем работаете? Можно посмотреть что пишет PLC Browser/PLCInfo?

Какие еще свое и не свое пространство ввода-вывода?.. не согласен категорически. ПЛК Овен НЕ ПРЕДУСМАТРИВАЕТ расширения иного чем по шине 485 (езернет не считаем). Вы хотитет сказать что подключенный МДВВ это нечто интеллектуальное, и его можно игнорировать при работе ПЛК???
Это как пример.

Если я подключил модули ввода/вывода к контроллеру, то наверно я хочу, чтобы они опрашивались с заданным циклом, в каждом ПОЛНОМ пересчете ПЛК? а тут получается они сами по себе, а программа, которая НЕ ДОЛЖНА работать без данных с этих модулей, строго выдерживает цикл.
собственно это и видно по опросу того же МДВВ - заданный в конфигурации цикл задается непонятно для чего.

Пользователи, которые управляют с циклом 1мс и менее пусть не используют медленные последовательные устройства.

У вас часть периферии, описаной в конфигурации работает синхронно, часть асинхронно? Как узнавать кто из них кто ? Мне сдается это не укладывается в стандарт 6311... не помню номер точно. Требуется веское слово Игоря Петрова ))

Еще раз повторю, Должна быть либо быстрая шина расширения для модулей, которые работают синхронно, либо синхронная работа всех модулей в конфигурации ПЛК(или не всех, а заданных). Если я использую МДВВ и МВА это не значит что они интеллектуальные(просто некуда деваться по сигналам), и мне нужен их гарантированный опрос перед каждый выполнением программы. Цикл контроллера получается таким какой есть, и пусть пользователь решает устраивает он его или нет. При этом цикл вообще может не укладываться в заданный.

Аркадий
23.03.2009, 16:22
ПРи разборе контакт врядли восстановился, ибо я пробовал в разобранном виде поработать с ним, все было аналогично.

по тем вопросам в предыдущем посте , увлекся, забыл ))))
с файлами работаю, со временем RTC тоже, посмотреть что показывает ПЛК браузер не имею возможности.

Игорь Петров
23.03.2009, 18:51
...почему то подобных багов нет ни в WAGO ни в BeckHoff...
К огромному сожалению, об этом не знает ПЛК одной из названных фирм, с которым мы с утра пятницы пытаемся восстановить связь. PC для программирования к нему подключается через маленький хлипенький (совсем не дешевый) переходник. Слова веские есть, но все не литературные :(


...Если я подключил модули ввода/вывода к контроллеру, то наверно я хочу, чтобы они опрашивались с заданным циклом, в каждом ПОЛНОМ пересчете ПЛК?...
:cool: Хорошо бы, но практически не всегда возможно. Проблема общеизвестная, абсолютно не уникальная для ПЛК Овен. Что делать, если филдбас медленный и куча модулей? Никто не запрещает сделать вход значение, которого будет опрашиваться раз в сутки, путем установки связи с модулем ввода через модем. Если это делает система исполнения ПЛК, то для меня это нормальный вход. Никаких хитростей при работе с ним применять не надо.

Очень часто в программе есть вычисления, размазанные на кучу циклов, есть опрос неких быстрых входов и др. и пр. Например, мне нужно раскручивать в ПЛК некий протокол связи по RS232 с неким нестандартным прибором. Тут мне нужен цикл 1 мс или меньше. Иначе никак. Ничего плохого нет в том, что входы некоего внешнего модуля будут обновляться не в каждом цикле, а например через 10 или 1000 циклов. Ничего плохого от этого не случиться. Страшно обратное. Если вдруг входы ПЛК начнут меняться чаще цикла ПЛК, то это будет полный капут. Именно об этом и говорит базовая модель цикла стандарта МЭК 61131-3. Входы читаются синхронно (возможно из некоторой промежуточной памяти) и не меняются во время вычислений.
Олег все очень четко написал.

Аркадий
24.03.2009, 07:37
ладно, разговор уже вышел за рамки данной темы :)
желаю разработчикам для общего блага побыстрее исправить ошибку, о которой изначально шла речь.

Малышев Олег
24.03.2009, 09:34
Вы хотитет сказать что подключенный МДВВ это нечто интеллектуальное, и его можно игнорировать при работе ПЛК???
Это как пример.

Еще раз интеллектуальное не устройство - а драйвер в ПЛК работающий с пространством ввода-вывода. Его можно остановить, подав команду 16#FF,запустить подав команду 16#FE d регистр статуса, Изменить цикл опроса(polling time). К примеру - пусть у вас 200 модбас РТУ переменных
мин.время чтения одного регистра на 115200,8,n,1= ((7 байт запр+3.5 отсчета+7 байт)*10 бит)/115200=0.001519 с а на все регистры 304 мс.
И это в идеальном случае - если устройство выдает данные мгновенно. Если нет - добавляем задержки. Итого pooling time не может быть меньше 304 мс. Пусть некоторые регистры нужно читать часто (концевики), а некоторые редко (температуры) : за счет уменьшения pooling time для концевиков увеличиваем pooling time температур



Если я подключил модули ввода/вывода к контроллеру, то наверно я хочу, чтобы они опрашивались с заданным циклом, в каждом ПОЛНОМ пересчете ПЛК? а тут получается они сами по себе, а программа, которая НЕ ДОЛЖНА работать без данных с этих модулей, строго выдерживает цикл.
собственно это и видно по опросу того же МДВВ - заданный в конфигурации цикл задается непонятно для чего.

Пользователи, которые управляют с циклом 1мс и менее пусть не используют медленные последовательные устройства.

У вас часть периферии, описаной в конфигурации работает синхронно, часть асинхронно? Как узнавать кто из них кто ? .
Собственно Игорь Викторович уже ответил. Что касается времени срабатывания - надо смотреть конкретные устройства - например реле в ПЛК срабатывают только через 20мс (если нужно быстрее используйте ключи). Дискретные входы ПЛК не берут переключения входов выходов чаще 10кГц