Сконвертировал свою программу в FBD и - о чудо!! Все работает, ничего не виснет, программа просто летает. Значит тормоз был все таки в CFC.
Сконвертировал свою программу в FBD и - о чудо!! Все работает, ничего не виснет, программа просто летает. Значит тормоз был все таки в CFC.
Тормоз был думаю не в CFC, а в малом опыте работы с CFC.
Где то порядок блоков не выстроился согласно выполнению, где то вход не видно что не подключился, или выход, и пр...
Сам CFC отлично работает. Рекомендую.
Вчера залил программу в контроллер, в онлайне все работает нормально, виснет только в эмуляции. Попробую ради эксперимента по очереди выкидывать функциональные блоки, может тормозит какой то из них.
1.Какие используем *.lib ? > не все для офлайнав онлайне все работает нормально, виснет только в эмуляции.
2.Эмуляция ругается при цикле большем чем 200..300ms, а в онлайне собачка по умолчанию - 1сек. > намутили с циклами
3.Цикл в офлайне - 60..70ms, в онлайне - 1..3 > .....
Тормозит редактор и выполнение программы в эмуляции, цикл программы меньше чем 1000 сделать не могу, для ПЛК-160 это минимальный
Уважаемые форумчане, может кто может посмотреть что не так. CFC для меня самый понятный, а в этом проекте и очень удобный чтоб следить за сигналами. Не могу закончить проект и проверить в симуляции.
Посмотрел. !!%№;@ 8(может кто может посмотреть что не так.
Все мои замечания выше - снимаю. CFC - действительно тормозит (в PLC_PRG связей - СОТНИ ) Даже на глаз - куча множественных присвоений/переприсвоений. Огромное кол-во операций с REAL. Они не нужны в каждом цикле. Ai здесь быстрые - но все равно не меньше 5мс.
Тут разбираться с самой логикой надо.Просто приложил пример одного из блоков. Что тут делается с t ? И такая фигня - везде. Раз любите CFC - изучите функции и EN/ENO
Причем случайно ткнул на порядок вычислений - он изменился. Это так задумано ? Это тоже имеет значение.
А сам PLC_PRG лучше делать размера примерно такого как этот блок - 1,2 страницы.
А у него описание VAR заканчивается на 230-й строке !!
Для начала -
Прицепите статистику или таймер. Какое реальное время цикла ?
Последний раз редактировалось Валенок; 31.10.2012 в 14:03.
не удивительно, что plc_prg так жутко тормозит, размер программы слишком большой, все нагромождено в кучу.
Хочу внести некоторые разъяснения! Эта куча нагромождений - старая советская машина на куче плат логики и обработки входных и выходных сигналов (в программе - функциональные блоки). Перевожу с плат на ПЛК.
По ходу написания выбрасываю ненужные сигналы (статус плат, рабочее-нерабочее состояние плат входа выхода) поэтому много переприсвоений сигнал выбросил - присвоил другое имя чтоб ушел на выход. Все это и пытаюсь упорядочить и убрать в процессе программирования и эмуляции.
Теперь насчет замечаний уважаемого Валенка. Я в этом деле новичок и некоторые замечания не всегда понимаю.
1. Что значит "Огромное кол-во операций с REAL. Они не нужны в каждом цикле. Ai здесь быстрые - но все равно не меньше 5мс.". Мне нужно видеть пульсации тока длительностью 30мс, по ним машина видит идет ли процесс оплавления или остановлен. Это можно как-то упростить?
2."Причем случайно ткнул на порядок вычислений - он изменился. Это так задумано ? Это тоже имеет значение." В эти опции я вообще не лазил и не знаю как правильно устанавливать порядок вычислений. Если можно подскажите как правильно.
3."Просто приложил пример одного из блоков. Что тут делается с t ? И такая фигня - везде. Раз любите CFC - изучите функции и EN/ENO" Сделал так потому-что изучил EN/ENO. После снятия EN выход с блока все равно остается а мне нужно чтоб пропадал. Смысл работы машины заключается в следующем:
Есть 11 тактов работы машины. На каждом такте подключается свой задатчик пути с энкодера, свой задатчик времени, свой задатчик скорости на частотник - такая логика заложена в старой машине конструкторами и я просто перенес ее на программу.
Вообще спасибо конструкторам 80-х. Схема разводки плат внутри машины - готовое CFC.
Последний раз редактировалось Коля О; 16.04.2012 в 12:43.