Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Таймеры CoDeSys

 Ответить Ответить Страница  <12345 11>
Автор
Сообщение
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Таймеры CoDeSys
    Опубликовано: 20 Февраль 2007 17:06
Первоначально опубликовано Petrov

...Сравниваю в таких случаях системное время с заранее запомненной переменной типа TIME.

Стандартные таймеры внутри делают абсолютно тоже самое (+ контроль переполнения). Ничего страшного в их большом числе нет.

Действительно на некоторых аппаратных платформах с сегментированной памятью число POU в проекте ограничено.

Igor Petrov
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2007 17:28
Первоначально опубликовано _IP_

Первоначально опубликовано Petrov

...Сравниваю в таких случаях системное время с заранее запомненной переменной типа TIME.

Стандартные таймеры внутри делают абсолютно тоже самое (+ контроль переполнения). Ничего страшного в их большом числе нет.

Действительно на некоторых аппаратных платформах с сегментированной памятью число POU в проекте ограничено.

Надо будет как-нибудь испытать.

Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2007 17:59

Да, видимо так оно и есть. Легко объявляется десяток тысяч таймеров, а каждый по 24 байта, и кол-во POU не увеличивается. Правда, пробовал в симуляторе.

А я всегда почему-то все инстанции причислял к POU. Надо будет кое-что пересмотреть. Век живи, век учись.

Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2007 18:03

А вот лежит у меня книжка "Программируемые контроллеры. Стандартные языки и приемы...", Игорь Викторович Петров. Ваша?

Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2007 19:03
Первоначально опубликовано Petrov

А вот лежит у меня книжка...

... Бить будете?
 
Сейчас в журнальном варианте печатается еще одна Отладка прикладных ПЛК программ в CoDeSys см. тут.

Igor Petrov
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2007 23:55

Уж коль скоро тема слегка отклонилась на CoDeSys, то хочется высказать пару слов. В общем CoDeSys, добротно сколоченная вещь, создает впечатление проработанной системы. Мелкие недоделки - не в счет, ведь она еще во всю разрабатывается. Как я заметил, самая сильная часть в CoDeSys - это эффективность исполняемого кода. Кстати, те же таймеры типа TON в версии 2.3.7.2 занимают всего 15 байт ! Старенький Пень-260 тянет 6-ти осную ЧПУ отдыхая - с загрузкой на 10%. Код компактный, быстрый, будто писан на чистом ASM-е. Аналогичные IEC вроде Simulink или новомодная iCon_L выглядят слабже. В редакторах iCon_L много "раскрасок" и "удобств", но не совсем понятно зачем они нужны, например оператору, если после разработки все убирается и в контроллере остается один исполняемый код, а ператор работает в лучшем случае через какую-нибудь HMI или вообще через пульт с четыоьмя лампочками ...
ОДНАКО, вместе с тем, есть в CoDeSys, как я думаю, один серьезный недостаток. Это - невозможность присваивать имена отдельным битам данных. Нельзя, как мы ни ходили кругами, скажем биту X25.2 присвоить псевдоним Lampochka_2, или Klapan_1. Файлы аппаратной онфигурации .CFG решают этот вопрос очень узким частным образом. Возможность присваивать псевдонимы произвольным элементам данных должна быть заложена в самом языке (оно так и есть в большинстве языков).
В переписке прозвучало слово "контроллер", это и побудило меня написать. Дело в том, что в "контроллерном деле" главенствующей единицей является БИТ, он же КОНТАКТ на разъеме. В академическом программировании больше рассматриваются БАЙТЫ, СЛОВА и т.д. Отсутствие именования битов, по моему, не оправдано никакой идеологией. Часто приходится слушать нарекания от промышленных заказчиков, пишущих "релейку" и "булевку" : " .. что за такое, почему нельзя назвать Пускатель22 ... ? ". И они ПРАВЫ ! Такая ундаментальная мелочь отпугивает добрую половину потебителей. А напрасно - ведь здоровская вещь CoDeSys.
Можно ли ожидать, что на эту тему будет что-то сделано или этотго вопроса вообще не рассматривается ?

С уважением, SAN.

 

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Февраль 2007 06:19
Первоначально опубликовано sanwork


нарекания от промышленных заказчиков, пишущих "релейку" и "булевку" : " .. что за такое, почему нельзя назвать Пускатель22 ... ? ". И они ПРАВЫ ! Такая ундаментальная мелочь отпугивает добрую половину потебителей.

Очень заинтересовало, о каком именовании битов отдельных битов идет речь, не могли бы пояснить…

PROGRAM PLC_PRG

VAR

            Pusk1 AT %MX0.1:BOOL;

            Pusk2 AT %MX0.2:BOOL;

            Pusk3 AT %MX0.3:BOOL;

END_VAR

Я понимаю именование битов происходит в вышеизложенном коде? Или вы хотите именовать биты в куче? Любопытно просто

 

Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Февраль 2007 12:39

Легко биты именуются, как Dismay показал. В ПЛК поддерживается конфигуратор контроллера, в нем по умолчанию задаются переменные (Out1, Out2 ...) сопоставленные битам входов/выходов.

Если битовый адрес не указан, то под переменную типа BOOL выделяется 1 байт. Это делается не сдуру. Штука в том, что многие микропроцессоры, не имеют специальных машинных команд для работы с битами, приходится использовать несколько машинных команд. Так Пень 200 будет работать с битами медленнее 8 бит Intel  8051 на 22 МГц. Поэтому немного жертвуем памятью и достигаем повышения быстродействия на порядок.

По поводу украшений всяких для CoDeSys обсуждали не раз. Но наиболее опытные  заказчики против фантиков, поскольку в правильных инструментах это не нужно и вредно.  Легко можно и к мужским трусам кружева пришить...

Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Февраль 2007 15:51

Трогать кучу пожалуй не стоит, удобнее да и надежнее работать со статическим локальным сегментом данных.

VAR

            Pusk1 AT %MX0.1:BOOL;

            Pusk2 AT %MX0.2:BOOL;

            Pusk3 AT %MX0.3:BOOL;

END_VAR

 

Да, именно так сейчас и действуем. Каждый раз, по нескольку раз приходится уточнять с заказчиком размер области данных , количество переменных, их имена (создавать заранее большой сегмент - не оправдывается). Подчас это проблематично, если заказчики далеко. Сами Они не очень-то хотят пользоваться такой систематикой (почему-то ?). Кроме того, постоянно что-то меняется, добавляется весьма в широких пределах, переименовывается. Часто требуется назначать новые имена уже именованным переменным, то-есть двойные и тройные псевдонимы и т.д. Количество частных случаев переходит в качественную необходимость перенести возможность написания пользовательских программ к самому месту её работы, местным программистам-электрикам.

Примерно это я и имел ввиду.

Кстати, в системе команд процессора Pentium имеются аппаратные инструкции работы с битами : BT, BTS, BTR, BTC, BSF, BSR и т.д. Но честно говоря, не знаю - использовали их в компиляторах CoDeSys ?

 

С уважением, SAN.

 

Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Февраль 2007 19:27

Пользователей SP RTE сейчас примерно 1 на 10000 пользователей обычных PLC с CoDeSys. Продукт этот очень интересный, но не дешевый и не массовый.

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

Похоже, что проблема в неком драйвере ввода/вывода SP RTE для которого не сделали конфигуратор переменных?

Наверх
 Ответить Ответить Страница  <12345 11>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz