plcforum.uz.ua

International PLC Forum
It is currently Sat Aug 18, 2018 6:03 pm

All times are UTC + 3 hours


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Fri Jul 27, 2018 11:23 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 177
Location: Ukraine
Здравствуйте, подскажите куда копать по следующему вопросу:

Есть CPU 314C-2 PN/DP, код к нему написан в Step7. Процентов 80 кода это STL - время цикла 12мс

Сделал новый проект(ПЛК тотже) практически с таким же функционалом в ТІАv14 (тут уже 80 процентов кода на SCL) - время цикла запредельные 60 мс, что в моей практике никогда не было

Даже если у меня и есть ошибки с оптимизацией то 50мс это уж сильно круто

Понимаю, что без кода мой вопрос глуповат, но может кто сталкивался с подобной проблемой, и сможет подсказать куда копать


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 11:43 am 
Site Admin

Joined: Thu Feb 16, 2006 6:25 pm
Posts: 3311
Location: Russia
Надо ставить эксперимент на одной конкретной задаче, написав идентичный функционал на разных языках.
Сравнить размер занимаемой программой памяти.
Можно сгенерировать "исходники" Source и сравнить самописный код STL и скомпилированный из SCL.
Учитывать обращение к внешней периферии и коммуникациям.


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 3:04 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 177
Location: Ukraine
Запутался и по моему мое представление о правильной архитектуре программы неправильно...

Допустим из OB вызывается FB1/DB1
в FB1 вызывается 10 раз FB2(мотор) который использует память FB1/DB1:
Motor1(FB2)
Motor2(FB2)
Motor3(FB2)
Motor4(FB2)
Motor5(FB2)
Motor6(FB2)
Motor7(FB2)
Motor8(FB2)
Motor9(FB2)
Motor10(FB2)
В каждом FB2 вызывается FB3 и FC1:
Motor1(FB2)
------------>FB3
------------>FC1
Motor2(FB2)
------------>FB3
------------>FC1
Motor3(FB2)
------------>FB3
------------>FC1
и т.д......

Вопрос : если заметить вызовы FB3 и FC1 на обработку их задач внутри FB2 это даст экономию времени цикла????


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 4:32 pm 

Joined: Tue Dec 26, 2006 8:21 am
Posts: 527
Location: Russia
Даст.


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 6:11 pm 

Joined: Fri Feb 24, 2012 11:28 am
Posts: 98
SCL компилятор создает кучу всякого дополнительного, и иногда ненужного кода (особенно когда код с циклами), а это дополнительная нагрузка на ресурсы. Даже ЛАД или ФБД создает дополнительный код (но меньше). Может лучше на СТЛ сделать?


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 6:12 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 177
Location: Ukraine
Спс всем за ответы,
да дало, уже выиграл 7 мс только на вызове одного "типа" оборудования - сделал вызов вложенных FC и FB по условию,
еще вопрос, есть инструкция Return часто ли ее используют при программировании, я как бы ее ни разу не использовал так как надобности не было????


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 6:14 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 177
Location: Ukraine
Usver wrote:
SCL компилятор создает кучу всякого дополнительного, и иногда ненужного кода (особенно когда код с циклами), а это дополнительная нагрузка на ресурсы. Даже ЛАД или ФБД создает дополнительный код (но меньше). Может лучше на СТЛ сделать?

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


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 7:02 pm 

Joined: Fri Feb 24, 2012 11:28 am
Posts: 98
Quote:
есть инструкция Return часто ли ее используют при программировании

А как без нее? Если дальнейшие действия в функции не имеют значения, или имеют, но они не нужны, то как без нее обойтись? Даже на ЛАД есть инструкция RET (на ФБД не помню, но скорее она тоже есть). Используется конечно же часто, как и на С++ и т.д и т.п.


Top
 Profile  
 
PostPosted: Fri Jul 27, 2018 7:10 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 177
Location: Ukraine
Спасибо, теперь все стало понятно почему такой большой разбег


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 9 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by International PLCforum® Forum Software © PLCforum
Mobile version